Iepazīstieties ar Bash masīviem — kā tos deklarēt, manipulēt ar tiem un dzēst.
Masīvi ir datu krātuves, ko izmanto, lai saglabātu vērtības, kurām ir kāda saistība viena ar otru. Atšķirībā no vairuma programmēšanas valodu, Bash masīvi var saglabāt dažādu datu tipu vērtības vienā masīvā.
Bash ir divu veidu masīvi: indeksēti masīvi un asociatīvie masīvi. Indeksētajiem masīviem indeksi sākas no 0 līdz (n-1), kā tas ir izplatīts lielākajā daļā valodu. Tomēr Bash masīvi ir reti. Tas nozīmē, ka varat piešķirt (n-1) masīva elementu, nepiešķirot (n-2) elementu.
Šajā apmācībā jūs uzzināsit, kā strādāt ar masīviem programmā Bash. Sāksim.
Masīvu definēšana
Ir trīs veidi, kā Bash var definēt masīvus. Līdzīgi kā Bash mainīgajiem, masīvi ir jāinicializē izveides laikā. Vienīgais izņēmums ir tas, ja izmantojat paziņot atslēgvārds. Inicializējot masīvu, jums arī jāpārliecinās, ka abās piešķiršanas operatora pusēs nav atstāta vieta.
Pirmā metode ir saliktā vērtību piešķiršana masīva nosaukumam. Ir divi veidi, kā to izdarīt:
arr1 = (3 5 6 7)
# or this
arr2 = ([3]=5 [1]=8 [0]=7)
Pirmajā saliktajā piešķiršanā vērtības apaļajās iekavās tiek piešķirtas secīgi no indeksa [0] uz [3].
Tomēr otrajā vērtības tiek piešķirtas indeksam tādā secībā, kādu programmētājs ir norādījis.
Saistīts: Kas ir vides mainīgie operētājsistēmā Linux? Viss, kas jums jāzina
Ja jūs rūpīgi ievērojāt arr2, jūs pamanīsit šo rādītāju [2] tika atstāts malā. Masīvs joprojām tiks izveidots bez jebkādām kļūdām. Šis uzdevums faktiski ir nelielas krātuves demonstrācija Bash masīvos, kā mēs pieskārāmies iepriekš.
Ņemiet vērā, ka nav komatu, kas atdala masīva vērtības. Vērtības ir vienkārši atdalītas ar atstarpēm.
Otrā metode netieši deklarē masīvu. Varat vienkārši sākt piešķirt vērtības nulles masīva elementiem:
arr3[0]=Toyota
arr3[1]=Honda
arr3[2]=Mercedes
Trešais veids ir skaidri deklarēt masīvu ar atslēgvārdu paziņot:
declare -a arrayName
Operācijas ar masīviem
Lai piekļūtu masīva elementiem, izmantojiet šo sintaksi: ${masīvs[index]}
fruits=(mango banana apples)
echo${fruits[1]}# output is banana
Ja jums ir jāizdrukā viss masīvs, izmantojiet @ simbols kā
rādītājs no ${masīvs[index]}:
echo${fruits[@]}
Lai uzzinātu elementu skaitu masīvā, izmantojiet # simbols, kā parādīts zemāk:
echo ${#fruits[1]}
Iespējams, jums būs arī jāmaina masīva elementi — skatiet tālāk sniegto piemēru, kā to izdarīt. Tas ir līdzīgi tam, kā pievienojat jaunu elementu. Vienīgā atšķirība ir tā, ka jūs aizstājat vērtību ar indeksu, kuram jau ir vērtība.
fruits[1]=pears
Asociatīvie masīvi
Masīvu, kura atslēgas ir patvaļīgas vērtības, sauc par asociatīvo masīvu. Šie masīvi tiek izmantoti saistītu atslēgu un vērtību pāru glabāšanai.
Saistīts: Kā pārvērst Bash skriptus klikšķināmās lietotnēs, izmantojot AppleScript
Lai definētu asociatīvo masīvu, tas ir jādara tieši, izmantojot atslēgvārdu paziņot.
# associative array called animal
declare -A animal
animal[giraffe]=tall
animal[lion]=brave
animal[cheetah]=fast
Dalībnieka elementam varat piekļūt tāpat kā indeksētiem masīviem:
echo${animal[lion]}
Ja vēlaties izdrukāt visas vērtības, varat izmantot @ simbols, kā parādīts zemāk:
echo${animal[@]}
Ja vēlaties izdrukāt visus masīva taustiņus, varat izmantot @ un ! simboli, kā parādīts zemāk:
echo${!animal[@]}
Lai atrastu asociatīvajā masīvā esošo elementu skaitu, izmantojiet to pašu sintaksi, ko izmantotu indeksētiem masīviem (parādīts pēdējā sadaļā).
Ja vēlaties dzēst masīva vienumu vai visu masīvu, izmantojiet tālāk norādīto sintaksi:
unset arrayName[Key] # delete array item
unset arrayName # delete entire array
Izmantojot komandu printf
Jūs, iespējams, pamanījāt, ka visā šajā rakstā tiek izmantots atbalss komanda, lai izvadītu datus čaulā. The atbalss komanda darbojas šajā apmācībā, taču tai ir maz funkciju un elastības, kad runa ir par virknes formatēšanu.
Tomēr printf komanda piedāvā specifiskākas formatēšanas opcijas, kas padara Bash skriptus vienkāršu. Apgūstot printf funkcija noteikti uzlabos jūsu virkņu formatēšanas pieredzi un efektivitāti Bash.