Naučite kako koristiti Bash For Loop u Shell skriptama
U programskim jezicima, petlje su bitne komponente i koriste se kada želite ponavljati kod iznova i iznova dok se ne ispuni određeni uvjet.
U Bash skriptiranju, petlje imaju gotovo istu ulogu i koriste se za automatiziranje zadataka koji se ponavljaju baš kao u programskim jezicima.
U Bash skriptiranju postoje 3 vrste petlji: petlja for, petlja while i petlja do. Ova tri se koriste za ponavljanje popisa vrijednosti i izvođenje zadanog skupa naredbi.
U ovom ćemo se vodiču usredotočiti na Bash For Loop u Linuxu.
Kao što je ranije spomenuto, petlja for ponavlja raspon vrijednosti i izvršava skup naredbi.
For petlja ima sljedeću sintaksu:
for variable_name in value1 value2 value3 .. n do command1 command2 commandn done
Provjerimo sada nekoliko primjera upotrebe bash for petlje.
Bash Simple For petlja
U svom najjednostavnijem obliku, For petlja ima sljedeći osnovni format. U ovom primjeru, varijabla n
iterira preko grupe numeričkih vrijednosti u vitičastim zagradama i ispisuje njihove vrijednosti u stdout.
for n in {1 2 3 4 5 6 7}; do echo $n done
Bash For petlja s rasponima
U prethodnim smo primjerima eksplicitno naveli vrijednosti koje treba ponavljati for petlja, što sasvim dobro funkcionira. Međutim, možete samo zamisliti koliko bi to bio glomazan i dugotrajan zadatak kada biste ponavljali preko, na primjer, stotinu vrijednosti. To bi vas natjeralo da upišete sve vrijednosti od 1 do 100.
Da biste riješili ovaj problem, odredite raspon. Da biste to učinili, navedite broj za početak i kraj odvojen s dvije točke.
U ovom primjeru, 1 je prva vrijednost dok je 7 posljednja vrijednost u rasponu.
#!/bin/bash for n in {1..7}; do echo $n done
Nakon što se skripta ljuske izvrši, sve vrijednosti u rasponu su navedene, slično onome što smo imali u jednostavnim petljama.
Dodatno, možemo uključiti vrijednost na kraju raspona koja će uzrokovati ponavljanje for petlje kroz vrijednosti u inkrementalnim koracima.
Sljedeća bash skripta ispisuje vrijednosti između 1 i 7 s 2 inkrementalna koraka između vrijednosti počevši od prve vrijednosti.
#!/bin/bash for n in {1..7..2}; do echo $n done
Iz gornjeg primjera možete vidjeti da je petlja povećala vrijednosti unutar vitičastih zagrada za 2 vrijednosti.
Bash For petlje s nizovima
Također možete jednostavno iterirati kroz vrijednosti definirane u nizu pomoću petlje za. U sljedećem primjeru, petlja for iterira kroz sve vrijednosti unutar polja plodova i ispisuje ih u stdout.
#!/bin/bash fruits=("blueberry" "peach" "mango" "pineapple" "papaya") for n in ${fruits[@]}; do echo $n done
Operator @
pristupa svim elementima ili ih cilja. To omogućuje ponavljanje svih elemenata jedan po jedan.
Osim toga, možete pristupiti jednom elementu navođenjem njegovog položaja unutar polja.
Na primjer, da biste pristupili elementu “mango”, zamijenite operator @
pozicijom elementa u nizu (prvi element počinje s 0, tako da će u ovom slučaju “mango” biti označen s 2).
Ovako izgleda for petlja.
#!/bin/bash fruits=("blueberry" "peach" "mango" "pineapple" "papaya") for n in ${fruits[2]}; do echo $n done
Bash petlje For u stilu C
Možete koristiti varijable unutar petlji za ponavljanje niza elemenata. Ovdje na scenu dolaze for petlje u C stilu. Sljedeći primjer ilustrira for petlju u C stilu koja ispisuje popis numeričkih vrijednosti od 1 do 7.
#!/bin/bash n=7 for (( n=1 ; n<=$n ; n++ )); do echo $n done
Bash C-stilizirane petlje For s uvjetnim naredbama
Možete uključiti uvjetne naredbe unutar for petlji u C stilu. U sljedećem primjeru smo uključili if-else naredbu koja provjerava i ispisuje parne i neparne brojeve između 1 i 7.
#!/bin/bash for (( n=1; n<=7; n++ )) do # Check if the number is even or not if (( $n%2==0 )) then echo "$n is even" else echo "$n is odd" fi done
Koristite naredbu 'Nastavi' s Bashom za petlju
Izjava 'nastavi' je ugrađena naredba koja kontrolira kako se skripta izvodi. Osim bash skriptiranja, također se koristi u programskim jezicima kao što su Python i Java.
Naredba continue zaustavlja trenutnu iteraciju unutar petlje kada se ispuni određeni uvjet, a zatim nastavlja iteraciju.
Razmotrite for petlju prikazanu u nastavku.
#!/bin/bash for n in {1..10} do if [[ $n -eq '6' ]] then echo "Target $n has been reached" continue fi echo $n done
Evo što kod radi:
- Redak 2: Označava početak for petlje i ponavlja varijablu n od 1 do 10.
- Redak 4: Provjerava vrijednost n i ako je varijabla jednaka 6, skripta šalje poruku u stdout i ponovno pokreće petlju u sljedećoj iteraciji u retku 2.
- Redak 9: Ispisuje vrijednosti na ekran samo ako je uvjet u retku 4 netočan.
Sljedeći je očekivani rezultat nakon pokretanja skripte.
Koristite naredbu 'break' s Bash For Loop
Naredba 'break', kao što ime sugerira, zaustavlja ili završava ponavljanje kada je ispunjen uvjet.
Razmotrite For petlju u nastavku.
#!/bin/bash for n in {1..10} do if [[ $n -eq '6' ]] then echo "Target $n has been reached" break fi echo $n done echo "All done"
Evo što kod radi:
- Redak 2: Označava početak for petlje i ponavlja varijablu n od 1 do 10.
- Redak 4: Provjerava vrijednost n i ako je varijabla jednaka 6, skripta šalje poruku u stdout i zaustavlja ponavljanje.
- Redak 9: Ispisuje brojeve na ekranu samo ako je uvjet u retku 4 netočan.
Iz izlaza možete vidjeti da se petlja zaustavlja kada varijabla ispuni uvjet petlje.
To je bio vodič o Bash For petljama. Nadamo se da vam je ovo bilo pronicljivo. Slobodno dajte svoje povratne informacije.