Keďže BASH je jazyk príkazového riadka, získame pomerne bohaté skúsenosti s programovaním na vykonávanie úloh v termináli. Môžeme použiť slučky a podmienené príkazy v BASH skriptoch na vykonávanie niektorých opakujúcich sa a zložitých problémov jednoduchým programovým spôsobom. V tomto článku sa zameriame na pre slučku v skriptoch BASH.
V závislosti od prípadu použitia a problému, ktorý sa snaží automatizovať, existuje niekoľko spôsobov, ako použiť slučky.
pričom slučka java
- Jednoduchá slučka For
- Slučka for založená na rozsahu
- Iterácia poľa pre cykly
- C-štýl pre slučky
- Nekonečná slučka for
Jednoduchá slučka For
Na vykonanie cyklu for môžeme napísať nasledujúcu syntax:
#!/bin/bash for n in a b c; do echo $n done>
- V prvej iterácii,
n>nadobudne hodnotu a a skript vypíše a. - V druhej iterácii,
n>nadobudne hodnotu b a skript vypíše b. - V tretej iterácii,
n>nadobudne hodnotu c a skript vypíše c.

Vyššie uvedený príkaz bude iterovať cez zadané prvky po v kľúčové slovo jeden po druhom. Prvky môžu byť čísla, reťazce alebo iné formy údajov.
Slučka for založená na rozsahu
Môžeme použiť slučky for založené na rozsahu. V tomto type cyklu môžeme zadať číslo, ktoré sa má spustiť, zastaviť a zvýšiť pri každej iterácii (voliteľné) v príkaze. Existujú dva spôsoby, ako to urobiť, t. j. uvedením hodnoty prírastku/zníženia hodnoty a predvolene zvýšením o jednu. Syntax vyzerá takto:
#!/bin/bash for n in {1..5}; do echo $n done> 
Vo vyššie uvedenom kóde používame {} na určenie rozsahu čísel. Vo vnútri zložených zátvoriek určujeme počiatočný bod, za ktorým nasledujú dve bodky a koncový bod. Štandardne sa zvyšuje o jednu. Preto vytlačíme 5 čísel od 1 do 5 vrátane.
#!/bin/bash for n in {1..5..2}; do echo $n done> 
Tu môžeme vidieť, že slučka sa zvýšila o 2 jednotky, ako je uvedené v zložených zátvorkách. Vďaka tomu je práca s číslami veľmi jednoduchá a pohodlná. Dá sa to použiť aj s abecednými znakmi.
POZNÁMKA: Nemôžeme použiť premenné v zložených zátvorkách, takže hodnoty budeme musieť napevno zakódovať. Ak chcete použiť premenné, v niekoľkých nasledujúcich častiach uvidíme tradičné cykly for v štýle C.
Iterácia poľa pre cykly
Pole môžeme pohodlne iterovať v bash pomocou slučiek for so špecifickou syntaxou. Na prístup ku všetkým prvkom v poli môžeme použiť špeciálne premenné v BASH, tj @. Pozrime sa na kód:
#!/bin/bash s=('football' 'cricket' 'hockey') for n in ${s[@]}; do echo $n done> 
np.klip
Prvky poľa môžeme iterovať pomocou operátora @, ktorý získa všetky prvky poľa. Takže pomocou cyklu for cez ne iterujeme jeden po druhom. Používame premennú ${názov_premennej[@]}, v ktorej zložené zátvorky rozširujú hodnotu premennej s tu, čo je pole reťazcov. Pomocou operátora [@] pristupujeme ku všetkým prvkom a teda ich iterujeme v slučke for. Tu, n je iterátor, preto môžeme hodnotu vytlačiť alebo na nej vykonať požadované spracovanie.
C-štýl pre slučky
Ako už bolo povedané, musíme použiť premenné vo vnútri cyklov for na iteráciu cez celý rad prvkov. A preto slučky for v štýle C hrajú veľmi dôležitú úlohu. Pozrime sa, ako ich používame.
#!/bin/bash n=7 for (( i=1 ; i<=$n ; i++ )); do echo $i done>

Ako vidíme, môžeme dynamicky použiť hodnotu rozsahu koncových podmienok. Pamätajte, že medzery medzi dvojitými zátvorkami môžu byť zámerné a sú súčasťou syntaxe. Cykly for v štýle C sú slučky, ktoré majú 3 časti, inicializačný iterátor, inkrementátor/dekrement a koncovú podmienku.
Vo vyššie uvedenej syntaxi sme inicializovali iterátor/počítadlo slučky na 1, čo môže byť čokoľvek podľa výberu. Druhá časť je koncová podmienka, tu sme použili premennú n ktorý je inicializovaný pred cyklom for a teda používame jednoduchý $ operátor na získanie hodnoty premennej. Nakoniec máme inkrementor/dekrementátor, ktorý zmení iterátor/počítadlo na hodnotu, ktorá môže byť čokoľvek, ale v príklade sme použili unárny operátor (++) zvýšiť hodnotu o jednu, ktorá je ekvivalentná i=i+1 . Môžeme teda použiť výroky ako i+=2, i–,++i, a tak ďalej a tak ďalej.
Nekonečná slučka for
Nepoužívame to často, ale niekedy je užitočné, aby niektoré veci fungovali. Syntax je pomerne jednoduchá a podobná slučkám for v štýle C.
#!/bin/bash n=4 for (( ; ; )); do if [ $n -eq 9 ];then break fi echo $n ((n=n+1)) done>
Slučka začína sn>nastavte na 4. Zvyšuje san>o 1 pri každej iterácii a vytlačí hodnotun>kýmn>sa stáva rovným 9. Kedyn>dosiahne 9,break>vykoná sa príkaz a cyklus sa ukončí. Po vytlačení čísel 4 až 8 sa skript zastaví.

Ako môžeme vidieť, cyklus „for“ nemá žiadne podmienky a toto sa cykluje navždy, ale máme vyhlásenie o stave, aby sme skontrolovali, že to nepokračuje navždy. Príkaz break používame vo vnútri príkazu if, aby sme sa dostali z cyklu a zastavili iteráciu s iterátorom. Použili sme inkrementor na zvýšenie premennej v slučke, inak je slučka nekonečná. Samozrejme, potrebujeme nejakú logiku, aby sme sa dostali zo slučky, a preto musíme použiť podmienený príkaz if.