Ker je BASH jezik ukazne vrstice, dobimo precej funkcijsko bogato izkušnjo za izkoriščanje veščin programiranja za izvajanje nalog v terminalu. V skriptih BASH lahko uporabimo zanke in pogojne stavke za izvajanje nekaterih ponavljajočih se in zapletenih težav na preprost programski način. V tem članku se bomo osredotočili na za zanko v skriptih BASH.
Glede na primer uporabe in težavo, ki jo poskuša avtomatizirati, obstaja nekaj načinov za uporabo zank.
- Preprosta zanka For
- Zanka for na podlagi obsega
- Ponavljanje matrike za zanke
- C-slog za zanke
- Neskončna for zanka
Preprosta zanka For
Za izvedbo zanke for lahko zapišemo naslednjo sintakso:
#!/bin/bash for n in a b c; do echo $n done>
- V prvi ponovitvi,
n>sprejme vrednost a in skript natisne a. - V drugi ponovitvi,
n>sprejme vrednost b in skript natisne b. - V tretji ponovitvi,
n>sprejme vrednost c in skript natisne c.

Zgornji ukaz bo ponovil podane elemente po v ključno besedo eno za drugo. Elementi so lahko številke, nizi ali druge oblike podatkov.
Zanka for na podlagi obsega
Uporabimo lahko zanke for na podlagi obsega. V tej vrsti zanke lahko določimo število za začetek, zaustavitev in povečanje pri vsaki ponovitvi (neobvezno) v stavku. To lahko storite na dva načina, in sicer tako, da navedete vrednost prirastka/zmanjšanja in privzeto povečate za eno. Sintaksa izgleda takole:
java seznam
#!/bin/bash for n in {1..5}; do echo $n done> 
V zgornji kodi uporabljamo {} za določitev obsega števil. Znotraj zavitih oklepajev določimo začetno točko, ki ji sledita dve piki in končna točka. Privzeto se poveča za eno. Zato natisnemo 5 števil od vključno 1 do 5.
#!/bin/bash for n in {1..5..2}; do echo $n done> 
Tukaj lahko vidimo, da se je zanka povečala za 2 enoti, kot je omenjeno v zavitih oklepajih. Tako je delo s številkami zelo enostavno in priročno. To lahko uporabite tudi z abecednimi znaki.
OPOMBA: V zavitih oklepajih ne moremo uporabiti spremenljivk, zato bomo morali vrednosti trdo kodirati. Za uporabo spremenljivk vidimo tradicionalne zanke for v slogu C v naslednjih nekaj razdelkih.
Ponavljanje matrike za zanke
Po nizih lahko priročno ponavljamo v bashu z uporabo zank for s posebno sintakso. Za dostop do vseh elementov v matriki lahko uporabimo posebne spremenljivke v BASH, tj. @. Poglejmo kodo:
#!/bin/bash s=('football' 'cricket' 'hockey') for n in ${s[@]}; do echo $n done> 
Elemente matrike lahko ponavljamo z uporabo operatorja @, ki pridobi vse elemente v matriki. Tako jih z uporabo zanke for ponavljamo enega za drugim. Uporabljamo spremenljivko ${variable_name[@]}, v kateri zavit oklepaj tukaj razširi vrednost spremenljivke s, ki je niz nizov. Z operatorjem [@] dostopamo do vseh elementov in jih tako ponavljamo v zanki for. Tukaj, n je iterator, zato lahko natisnemo vrednost ali izvedemo zahtevano obdelavo na njej.
C-slog za zanke
Kot smo že omenili, moramo uporabiti spremenljivke znotraj zank for za ponavljanje po vrsti elementov. In tako imajo zanke for v obliki C zelo pomembno vlogo. Poglejmo, kako jih uporabljamo.
#!/bin/bash n=7 for (( i=1 ; i<=$n ; i++ )); do echo $i done>

Kot lahko vidimo, lahko dinamično uporabimo vrednost obsega končnih pogojev. Ne pozabite, da so presledki med oklepaji morda namerni in so del sintakse. Zanke for v slogu C so zanke, ki imajo 3 dele, inicializacijski iterator, inkrementor/dekrementor in končni pogoj.
V zgornji sintaksi smo inicializirali iterator/števec zanke na 1, ki je lahko karkoli po izbiri. Drugi del je končni pogoj, tukaj smo uporabili spremenljivko n ki se inicializira pred zanko for in tako uporabljamo preprosto $ operator, da dobite vrednost spremenljivke. Končno imamo inkrementor/dekrementor, ki spremeni iterator/števec v vrednost, ki je lahko karkoli, vendar smo v primeru uporabili unarni operator (++) da povečate vrednost za eno, kar je enako i=i+1 . Tako lahko uporabimo izjave, kot je i+=2, i–,++i, in tako naprej in tako naprej.
Neskončna for zanka
Tega ne uporabljamo pogosto, vendar je včasih koristno, da določene stvari delujejo. Sintaksa je precej enostavna in podobna zankam for v slogu C.
#!/bin/bash n=4 for (( ; ; )); do if [ $n -eq 9 ];then break fi echo $n ((n=n+1)) done>
Zanka se začne zn>nastavljen na 4. Povečuje sen>za 1 pri vsaki ponovitvi in natisne vrednostn>doklern>postane enako 9. Kon>doseže 9, thebreak>stavek se izvede in zanka se konča. Skript se ustavi, ko natisne številke od 4 do 8.

Kot lahko vidimo, zanka `za` nima pogojev in se zanka za vedno, vendar imamo stavek pogoja, s katerim preverimo, da se ne nadaljuje večno. Uporabimo stavek break znotraj stavka if, da se izvlečemo iz zanke in prenehamo ponavljati z iteratorjem. Za povečanje spremenljivke v zanki smo uporabili inkrementor, sicer je zanka neskončna. Seveda potrebujemo nekaj logike, da izstopimo iz zanke, in zato moramo uporabiti pogojni stavek if.