- Definējiet masīvu pēc indeksa
- Definējiet masīvu ar vairākām vērtībām
- Definējiet asociatīvo masīvu
- Saskaitiet masīva vērtības
- Izlasiet masīva vērtības pēc cikla
- Izlasiet masīva īpašās vērtības
- Ievietojiet masīva vērtības
- Izlasiet faila saturu masīvā
- Apvienojiet masīva vērtības
- Mainiet masīva vērtības
- Noņemiet masīva vērtības
- Meklēt un aizstāt masīva vērtības
- Izmantojiet masīvu kā funkcijas argumentu
- Atgrieziet masīvu no funkcijas
- 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:
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:
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:
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:
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:
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ā:
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ē:
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
MangoDž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:
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:
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ē:
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ē:
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ē:
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:
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:
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:
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.