Bash Tutorial 6: Arrays
Sadržaj:
- Bash Arrays
- Stvaranje Bash nizova
- Izrada numerički indeksiranih nizova
- Izrada asocijativnih nizova
- Operacije polja
- Referentni elementi
- Duljina niza
- Pregledajte niz
- Dodajte novi element
- Izbrišite element
- Zaključak
Nizovi su jedna od najčešće korištenih i temeljnih struktura podataka. Možete misliti kako je niz varijabla koja unutar nje može pohraniti više varijabli., pokrit ćemo Bash nizove i objasniti ih kako ih koristiti u svojim Bash skriptama.
Bash Arrays
Bash podržava jednodimenzionalno numerički indeksirane i asocijativne tipove nizova. Numerički se nizi odnose na cijele brojeve, a asocijativni se koriste nizovima.
Numerički indeksiranim nizovima može se pristupiti s kraja pomoću negativnih indeksa, indeks
-1
odnosi se na posljednji element. Indeksi ne moraju biti međusobni.
Za razliku od većine programskih jezika, Bash elementi elemenata ne moraju biti iste vrste podataka. Možete stvoriti niz koji sadrži i nizove i brojeve.
Bash ne podržava višedimenzionalne nizove i ne možete imati elemente niza koji su također nizovi.
Ne postoji ograničenje maksimalnog broja elemenata koji se mogu pohraniti u niz.
Stvaranje Bash nizova
Nizovi u Bashu mogu se inicijalizirati na različite načine.
Izrada numerički indeksiranih nizova
Bash varijable nisu tipizirane, bilo koja varijabla može se koristiti kao indeksirani niz bez deklariranja.
Da biste izričito deklarirali niz, upotrijebite deklariranje izgrađen:
declare -a array_name
Jedan od načina stvaranja indeksiranog niza je upotreba sljedećeg obrasca:
array_name=value_1 array_name=value_2 array_name=value_n
Gdje je
index_*
pozitivni cijeli broj.
Drugi način stvaranja numeričkog niza je odrediti popis elemenata u zagradama odvojenih praznim prostorom:
array_name=(element_1 element_2 element_N)
Kad se niz stvori pomoću gornjeg oblika, indeksiranje započinje s nulom tj. Prvi element ima indeks
0
.
Izrada asocijativnih nizova
Za razliku od numerički indeksiranih, asocijativni nizovi moraju se objaviti prije nego što se mogu koristiti.
Za deklariranje asocijativnog niza upotrijebite
declare
izgrađeno s opcijom
-A
(velika slova):
declare -A array_name
Asovativni nizovi se mogu stvoriti pomoću sljedećeg oblika:
declare -A array_name array_name=value_foo array_name=value_bar array_name=value_xyz
Gdje
index_*
može biti bilo koji niz.
Također možete stvoriti asocijativni niz pomoću donjeg obrasca:
declare -A array_name array_name=(=value_foo =value_bar =value_xyz)
Operacije polja
Sintaksa Bash nizova u početku može izgledati pomalo čudno, ali više će imati smisla kad pročitate ovaj članak.
Referentni elementi
Za referencu na jedan element, morate znati indeks elemenata.
Na bilo koji element može se uputiti pomoću sljedeće sintakse:
${array_name}
Sintaksa za pristup elementu polja slična je sintaksi većine programskih jezika. Valoviti zagrade
${}
potrebni su za izbjegavanje operatora proširenja naziva ljuske datoteke.
Ispišimo element s indeksom
1
:
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print element echo ${my_array}
Helium
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${my_array}"
Hydrogen Helium Lithium Beryllium
Jedina razlika između
@
i
*
je kada je obrazac
${my_array}
okružen dvostrukim navodnicima. U ovom se slučaju
*
širi na jednu riječ gdje su elementi niza odvojeni s razmakom.
@
proširuje svaki element polja u zasebnu riječ. To je posebno važno kada se obrazac koristi za nepismeno izradu elemenata niza.
Za ispis ključeva polja dodajte
!
operator prije naziva niza:
${!array_name}
Evo primjera:
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${!my_array}"
Duljina niza
Da biste dobili duljinu matrice, koristite sljedeći obrazac:
${#array_name}
Sintaksa je ista kao kada se referenciraju svi elementi s dodavanjem znaka
#
prije naziva niza.
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## array Length echo ${#my_array}
Pregledajte niz
Najčešći način ponavljanja svake stavke u nizu je pomoću petlje za:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${my_array}" do echo "$i" done
Gornji kôd će ponoviti preko matrice i ispisati svaki element u novom retku:
Hydrogen Helium Lithium Beryllium
Evo primjera kako ispisati sve ključeve i vrijednosti:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${!my_array}" do echo "$i" "${my_array}" done
0 Hydrogen 1 Helium 2 Lithium 3 Beryllium
Drugi način za preskakanje kroz niz je dobivanje duljine polja i korištenje petlje u
C style
:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") # Length of the array length=${#my_array} # Array Loop for ((i=0; i < ${length}; i++)) do echo $i ${my_array} done
0 Hydrogen 1 Helium 2 Lithium 3 Beryllium
Dodajte novi element
Da biste dodali novi element u bash niz i odredili njegov indeks, koristite sljedeći obrazac:
my_array="New Element"
Evo primjera:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new element my_array="Aluminum" ## print all elements echo "${my_array}"
Hydrogen Helium Lithium Beryllium Aluminum
Drugi način dodavanja novog elementa u niz bez navođenja indeksa je upotreba operatora
+=
. Možete dodati jedan ili više elemenata:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new elements my_array+=(Cobalt Nickel) ## print all elements echo "${my_array}"
Hydrogen Helium Lithium Beryllium Cobalt Nickel
Izbrišite element
Da biste izbrisali jedan element, morat ćete znati indeks elemenata. Element se može ukloniti pomoću naredbe za uklanjanje:
unset my_array
Pogledajmo primjer:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## remove element unset my_array ## print all elements echo "${my_array}"
Zaključak
Objasnili smo kako stvoriti numerički indeksirane i asocijativne nizove. Također smo pokazali kako iterati kroz nizove, izračunati duljinu polja i dodati i ukloniti elemente.
bash terminalMicrosoft Research Azija domaćini Gates na 10 godina Bash

Microsoft Research Asia je narasla od desetak ljudi 1998. godine na više od 350 desetljeća kasnije.
Kako pokrenuti Bash na Ubuntu na Windows 10

Omogućivanje podsustava sustava Windows za Linux omogućit će vam da pokrenete Bash na Ubuntu na Windows 10, Bash skripte , Linux alati naredbenog retka, prvi alati za Linux
Bash za petlju

U scenariju Bash postoje 3 osnovne konstrukcije petlje, za petlju, petlju i petlju. U ovom ćemo udžbeniku opisati osnove za petlje u Bash-u, kao i prekid i nastavke izjava za promjenu toka petlje.