Kā manipulēt un kontrolēt datus, izmantojot Bash Array

Ka Manipulet Un Kontrolet Datus Izmantojot Bash Array



Masīva mainīgais tiek izmantots jebkurā programmēšanas valodā, lai saglabātu vairākas vērtības, izmantojot indeksu. Masīva indekss var būt skaitlis vai virkne. Masīvu, kas satur skaitlisko indeksu, sauc par “ciparu masīvu”, un masīvu, kurā kā indekss satur virknes vērtību, sauc par “asociatīvo masīvu”. Bash var izveidot gan skaitliskos, gan asociatīvos masīvus. Bash masīva datu manipulācijas un kontroles metodes ir detalizēti parādītas, izmantojot 15 piemērus šajā apmācībā.

Satura saraksts:

  1. Definējiet masīvu pēc indeksa
  2. Definējiet masīvu ar vairākām vērtībām
  3. Definējiet asociatīvo masīvu
  4. Saskaitiet masīva vērtības
  5. Izlasiet masīva vērtības pēc cikla
  6. Izlasiet masīva īpašās vērtības
  7. Ievietojiet masīva vērtības
  8. Izlasiet faila saturu masīvā
  9. Apvienojiet masīva vērtības
  10. Mainiet masīva vērtības
  11. Noņemiet masīva vērtības
  12. Meklēt un aizstāt masīva vērtības
  13. Izmantojiet masīvu kā funkcijas argumentu
  14. Atgrieziet masīvu no funkcijas
  15. Padariet masīvu tukšu

Definējiet masīvu pēc indeksa

Masīva deklarēšanas metode, minot secīgos vai nesecīgos ciparu indeksus, ir parādīta nākamajā skriptā. Šāda veida masīvu sauc par ciparu masīvu. Šeit masīvs “$books” tiek izveidots, definējot trīs secīgus indeksus, un masīvs “$products” tiek izveidots, definējot četrus nesecīgus indeksus. Visas abu masīvu vērtības tiek izdrukātas, izmantojot funkciju “printf”.







#!/bin/bash

#Definējiet masīva indeksu secīgā secībā

grāmatas [ 0 ] = 'Learning the bash Shell'

grāmatas [ 1 ] = 'Kiberdrošības operācijas ar bash'

grāmatas [ 2 ] = 'Bash Command Line Pro padomi'

atbalss 'Visas pirmā masīva vērtības:'

printf '%s\n' ' ${grāmatas[@]} '

#Definējiet masīva indeksu nesecīgā secībā

produktiem [ 10 ] = 'Pildspalva'

produktiem [ 5 ] = 'Zīmulis'

produktiem [ 9 ] = 'Rular'

produktiem [ 4 ] = 'A4 izmēra papīrs'

atbalss

atbalss 'Visas otrā masīva vērtības:'

printf '%s\n' ' ${produkti[@]} '

Izvade :



Pēc skripta izpildes tiek parādīta šāda izvade. Abu masīvu vērtības tiek izdrukātas izvadē. Indeksa secība tiek uzturēta drukāšanas laikā nesecīgo indeksu masīvam:



  p1





Iet uz augšu

Definējiet masīvu ar vairākām vērtībām

Ciparu masīvu ar vairākām vērtībām var deklarēt, izmantojot komandu “declare” ar opciju -a vai neizmantojot komandu “declare”. Nākamajā skriptā pirmais masīvs tiek deklarēts, izmantojot komandu “declare”, bet otrais masīvs tiek izveidots, neizmantojot komandu “declare”.



#!/bin/bash

#Deklarējiet ciparu masīvu ar atslēgvārdu 'declare'.

paziņot -a vārdus = ( 'Maikls' 'Dāvids' 'Aleksandrs' 'Tomass' 'Roberts' 'Ričards' )

#Izdrukājiet masīva vērtības

atbalss 'Visas pirmā masīva vērtības:'

printf '%s\n' ' ${names[@]} '

#Deklarēt ciparu masīvu bez atslēgvārda “declare”.

grāmatas = ( 'Shell skriptu apmācības' 'Bišs Bašs Bošs!' 'Ātri iemācieties Bašu' )

#Pievienot jaunu rindiņu

atbalss

#Izdrukājiet masīva vērtības

atbalss 'Visas otrā masīva vērtības:'

printf '%s\n' ' ${grāmatas[@]} '

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade. Abu masīvu vērtības tiek izdrukātas šeit:

  p2

Iet uz augšu

Definējiet asociatīvo masīvu

Masīvu, kurā kā indekss satur virknes vērtību, sauc par asociatīvo masīvu. Opcija -A tiek izmantota kopā ar komandu “declare” programmā Bash, lai izveidotu asociatīvu Bash masīvu. Nākamajā skriptā pirmais asociatīvais masīvs tiek deklarēts, atsevišķi minot indeksus, un otrais masīvs tiek deklarēts, minot visus atslēgu un vērtību pārus masīva deklarācijas laikā.

#!/bin/bash

#Deklarējiet asociatīvo masīva mainīgo bez vērtības

paziņot -A darbinieks

#Piešķiriet vērtību atsevišķi, definējot indeksu

darbinieks [ 'id' ] = '78564'

darbinieks [ 'vārds' ] = 'Pieejami aktieri'

darbinieks [ 'post' ] = 'CEO'

darbinieks [ 'alga' ] = 300 000

#Izdrukājiet divas masīva vērtības

atbalss 'Darbinieka ID: ${employee[id]} '

atbalss 'Darbinieka vārds: ${darbinieks[vārds]} '

#Deklarējiet asociatīvu masīvu ar vērtībām

paziņot -A protams = ( [ kodu ] = 'CSE-206' [ nosaukums ] = 'Objektorientētā programmēšana' [ kredīta_stunda ] = 2.0 )

#Pievienot jaunu rindiņu

atbalss

#Izdrukājiet divas otrā masīva masīva vērtības

atbalss 'Kursa nosaukums: ${kurss[vārds]} '

atbalss 'Kredīta stunda: ${kurss[kredītstunda]} '

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade. Šeit tiek izdrukātas konkrētās asociatīvā masīva vērtības, minot atslēgu vai indeksa vērtību:

  p3

Iet uz augšu

Saskaitiet masīva vērtības

Skaitliskā masīva un asociatīvā masīva kopējo elementu skaitīšanas metode ir parādīta šādā skriptā:

#!/bin/bash

#Deklarēt ciparu masīvu

paziņot -a vārdus = ( 'Maikls' 'Dāvids' 'Aleksandrs' 'Tomass' 'Roberts' 'Ričards' ) ;

atbalss 'Ciparu masīva garums ir ${#names[@]} '

#Deklarēt asociatīvo masīvu

paziņot -A protams = ( [ kodu ] = 'CSE-206' [ nosaukums ] = 'Objektorientētā programmēšana' [ kredīta_stunda ] = 2.0 )

atbalss 'Asociatīvā masīva garums ir ${#kurss[@]} '

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade. Ciparu un asociatīvo masīvu masīva garums tiek izdrukāts šeit:

  p4

Iet uz augšu

Lasiet masīva vērtības pēc cikla

Skaitliskā masīva un asociatīvā masīva visu vērtību nolasīšanas metode, izmantojot cilpu “for”, ir parādīta šādā skriptā:

#!/bin/bash

#Deklarēt ciparu masīvu

paziņot -a grāmatas = ( 'Shell skriptu apmācības' 'Bišs Bašs Bošs!' 'Ātri iemācieties Bašu' )

#Izdrukājiet ciparu masīva vērtības

atbalss 'Ciparu masīva vērtības ir:'

priekš iekšā iekšā ' ${grāmatas[@]} '

darīt

atbalss ' $in '

darīts

atbalss

#Deklarējiet asociatīvu masīvu ar vērtībām

paziņot -A klientiem = (

[ id ] = 'H-5623'

[ nosaukums ] = 'Mr. Ahnaf'

[ adrese ] = '6/A, Danmondi, Daka.'

[ tālrunis ] = '+8801975642312' )

#Izdrukājiet asociatīvā masīva vērtības

atbalss 'Asociatīvā masīva vērtības ir:'

priekš k iekšā ' ${!klients[@]} '

darīt

atbalss ' $k => ${klients[$k]} '

darīts

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade. Šeit izvadā tiek izdrukātas skaitliskā masīva vērtības un asociatīvā masīva atslēgu-vērtību pāri:

  5. lpp

Iet uz augšu

Izlasiet īpašo masīva vērtību diapazonu

Konkrētā indeksu diapazona masīva vērtības ir parādītas nākamajā skriptā. Skriptā ir definēts četru elementu skaitliskais masīvs. Divas masīva vērtības no masīva otrā indeksa tiek izdrukātas vēlāk.

#!/bin/bash

#Deklarēt ciparu masīvu

paziņot -a kūkas = ( 'Šokolādes kūka' 'Vaniļas kūka' 'Sarkanā samta kūka' 'zemeņu kūka' )

#Izdrukājiet konkrētās masīva vērtības

atbalss 'Masīva vērtību 2. un 3. elements ir:'

printf '%s\n' ' ${kūkas[@]:1:2} '

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade. Otrā un trešā masīva vērtība ir “Vanilla Cake” un “Red Velvet Cake”, kas tiek izdrukātas izvadā:

  p6

Iet uz augšu

Ievietojiet masīva vērtības

Vairāku vērtību pievienošanas metode masīva beigās ir parādīta nākamajā skriptā. Galvenais masīvs, kas ir “$books”, satur trīs elementus, un divi elementi tiek pievienoti “$books” masīva beigās.

#!/bin/bash

#Deklarēt ciparu masīvu

paziņot -a grāmatas = ( 'Shell skriptu apmācības' 'Bišs Bašs Bošs!' 'Ātri iemācieties Bašu' )

#Pirms ievietošanas izdrukājiet masīva vērtības

atbalss 'Masīva vērtības:'

printf '%s\n' ' ${grāmatas[@]} '

atbalss

grāmatas = ( ' ${grāmatas[@]} ' 'Linux komandrinda un Shell skriptu Bībele' Mendela Kūpera uzlabotā Bash skriptu rokasgrāmata )

#Pēc ievietošanas izdrukājiet masīva vērtības

atbalss 'Masīvu vērtības pēc divu vērtību ievietošanas:'

printf '%s\n' ' ${grāmatas[@]} '

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade. Masīva vērtības pirms un pēc jaunu vērtību ievietošanas tiek izdrukātas izvadē:

  7. lpp

Iet uz augšu

Izlasiet faila saturu masīvā

Lai pārbaudītu šī piemēra skriptu, izveidojiet teksta failu ar nosaukumu “fruits.txt” ar šādu saturu:

augļi.txt

Mango

Džekfrūti

Ananāss

apelsīns

Banāns

Nākamajā skriptā faila saturs tiek saglabāts masīvā ar nosaukumu “$data”. Šeit katra faila rinda tiek saglabāta kā katrs masīva elements. Pēc tam tiek izdrukātas masīva vērtības.

#!/bin/bash

#Izlasiet lietotāja faila nosaukumu

lasīt -lpp 'Ievadiet faila nosaukumu:' faila nosaukums

ja [ -f $faila nosaukums ]

tad

#Lasīt faila saturu masīvā'

datus = ( ` kaķis ' $faila nosaukums ' ` )

atbalss 'Faila saturs ir norādīts zemāk:'

# Lasiet failu rindu pēc rindiņas

priekš līniju iekšā ' ${data[@]} '

darīt

atbalss $rinda

darīts

būt

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade. Komandas “cat” parādītā izvade un skripta izvade ir līdzīgas, jo vienam un tam pašam failam piekļūst komanda “cat” un skripts:

  8. lpp

Iet uz augšu

Apvienojiet masīva vērtības

Jauns masīvs tiek izveidots, apvienojot vairāku masīvu vērtības. Nākamajā skriptā ir definēti divi virkņu skaitliski masīvi. Pēc tam tiek izveidots jauns masīvs, apvienojot šo masīvu vērtības.

#!/bin/bash

#Deklarēt pirmo masīvu

paziņot -a nameList1 = ( 'Maikls' 'Dāvids' 'Aleksandrs' 'Tomass' )

atbalss 'Pirmās masīva vērtības ir:'

printf '%s,' ${nameList1[@]}

atbalss

#Deklarēt otro masīvu

paziņot -a nameList2 = ( 'Roberts' 'Ričards' )

atbalss 'Otrās masīva vērtības ir:'

printf '%s,' ${nameList2[@]}

atbalss

#Izveidojiet jaunu masīvu, apvienojot divus masīvus

kombinētais_masīvs = ( ' ${nameList1[@]} ' ' ${nameList2[@]} ' )

atbalss 'Kombinētās masīva vērtības ir šādas:'

printf '%s,' ${combined_array[@]}

atbalss

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade. Šeit izvadā tiek izdrukātas trīs masīvu vērtības. Trešajā masīvā ir visas pirmā un otrā masīva vērtības:

  9. lpp

Iet uz augšu

Mainiet masīva vērtības

Viena vai vairāku masīva vērtību atjaunināšanas metode, pieminot indeksu, ir parādīta šādā skriptā:

#!/bin/bash

#Deklarēt pirmo masīvu

paziņot -a vārdu saraksts = ( 'Maikls' 'Dāvids' 'Aleksandrs' 'Tomass' )

atbalss 'Masīva vērtības:'

printf '%s,' ${nameList[@]}

atbalss

#Atjauniniet masīva 2. vērtību

vārdu saraksts [ 1 ] = 'Roberts'

atbalss 'Masīvu vērtības pēc atjaunināšanas:'

printf '%s,' ${nameList[@]}

atbalss

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade. Galvenā masīva un atjaunināto masīvu vērtības tiek izdrukātas izvadē:

  10. lpp

Noņemiet masīva vērtības

Komanda “atiestatīt” tiek izmantota, lai noņemtu konkrēto elementu vai visus masīva elementus. Nākamajā skriptā masīva otrais elements tiek noņemts.

#!/bin/bash

#Deklarēt ciparu masīvu

paziņot -a grāmatas = ( 'Shell skriptu apmācības' 'Bišs Bašs Bošs!' 'Ātri iemācieties Bašu' )

#Pirms noņemšanas izdrukājiet masīva vērtības

atbalss 'Masīva vērtības:'

printf '%s\n' ' ${grāmatas[@]} '

atbalss

#Noņemiet 2. elementu

atiestatīts grāmatas [ 1 ]

#Izdrukājiet masīva vērtības pēc noņemšanas

atbalss 'Masīvu vērtības pēc 2. vērtības noņemšanas:'

printf '%s\n' ' ${grāmatas[@]} '

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade. Galvenā masīva vērtības un masīva vērtības pēc vienas vērtības noņemšanas tiek izdrukātas izvadē:

  11. lpp

Iet uz augšu

Meklēt un aizstāt masīva vērtības

Nākamajā skriptā konkrētā masīva vērtība tiek aizstāta ar citu vērtību, ja paraugā definētā meklēšanas vērtība tiek saskaņota ar jebkuru masīva “$names” vērtību.

#!/bin/bash

#Deklarēt pirmo masīvu

paziņot -a vārdus = ( 'Maikls' 'Dāvids' 'Aleksandrs' 'Tomass' )

#Izdrukājiet sākotnējās masīva vērtības

atbalss 'Sākotnējās masīva vērtības:'

printf '%s\n' ' ${names[@]} '

#Ģenerējiet virkni pēc masīva vērtību aizstāšanas

atjaunināts_masīvs = ${names[@]/Aleksandrs/Ričards}

#Izdrukājiet masīva vērtības pēc aizstāšanas

atbalss 'Masīvu vērtības pēc aizstāšanas:'

printf '%s\n' ' ${updated_array[@]} '

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade. Galvenā masīva vērtības un masīva vērtības pēc vērtības aizstāšanas tiek izdrukātas izvadē:

  12. lpp

Iet uz augšu

Izmantojiet masīvu kā funkcijas argumentu

Nākamajā skriptā masīva mainīgais tiek nodots kā funkcijas arguments, un šī masīva vērtības tiek izdrukātas vēlāk.

#!/bin/bash

#Deklarējiet skaitļu masīvu

paziņot -a cipariem = ( 10 6 Četri, pieci 13 8 )

#Definējiet funkciju, kas izmantos argumenta vērtību

func ( )

{

#Izlasi pirmo argumentu

cipariem = 1 $

#Izdrukājiet masīva vērtības

atbalss 'Masīva vērtības:'

printf '%d\n' ' ${numbers[@]} '

}

#Izsauciet funkciju ar masīvu kā argumentu

func ' ${numbers[@]} '

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade:

  13. lpp

Iet uz augšu

Atgriezt masīvu no funkcijas

Nākamajā skriptā funkcija tiek izsaukta ar četriem ciparu argumentiem. Tiek izveidots masīvs ar argumentu vērtībām, un šis masīvs tiek atgriezts no funkcijas zvanītājam.

#!/bin/bash

#Definējiet funkciju, kas nolasa četras argumentu vērtības

func ( )

{

#Izlasiet argumentu vērtības

cipariem = ( 1 $ 2 $ 3 $ 4 $ )

#Atgriezt masīvu

atbalss ' ${numbers[@]} '

}

#Izsauciet funkciju ar trim argumentiem

atgriešanās_val =$ ( func 78 Četri, pieci 90 23 )

#Saglabājiet atgriešanas vērtību masīvā

lasīt -a uz viena <<< $return_val

#Izdrukājiet atgrieztā masīva vērtības

atbalss 'Masīva vērtības ir:'

priekš iekšā iekšā ' ${num[@]} '

darīt

atbalss ' $in '

darīts

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade:

Iet uz augšu

Padariet masīvu tukšu

Šis skripts parāda metodi, kā padarīt masīvu tukšu, izmantojot komandu “unset”. Kopējais masīva vērtību skaits tiek izdrukāts pirms un pēc masīva iztukšošanas.

#!/bin/bash

#Deklarējiet skaitļu masīvu

paziņot -a cipariem = ( 10 6 Četri, pieci 13 80 )

atbalss 'Masīva vērtību skaitļi: ${#numbers[@]} '

#Padariet masīvu tukšu

atiestatīts cipariem

atbalss 'Masīva vērtību skaits pēc masīva iztukšošanas: ${#numbers[@]} '

Izvade :

Pēc skripta izpildes tiek parādīta šāda izvade. Masīva elementu skaits kļuva 0 pēc tam, kad masīvs bija tukšs:

  15. lpp

Iet uz augšu

Secinājums

Šajā apmācībā ir parādītas dažādas Bash skripta masīva mainīgo deklarēšanas, piekļuves, modificēšanas un noņemšanas metodes, izmantojot 15 vienkāršus piemērus. Mēs ceram, ka šī apmācība palīdzēs Bash lietotājiem detalizēti uzzināt Bash masīva lietojumus.