Ebben a részben a for, while és until ciklusokról lesz szó.
A for ciklus egy kicsit eltér a más nyelvekben megszokottaktól. Alapvetően egy sztringekben szereplő szavak halmazának feldolgozására használjuk.
A while ciklus addig ismétli a ciklusmagot, amíg a ciklusfeltétel hamissá nem válik (vagy ki nem ugrunk a ciklusmagból a break utasítással).
Az until ciklus tulajdonképpen azonos a while ciklussal, a különbség csupán annyi, hogy az ismétlés addig folytatódik, amíg a feltétel hamis.
Ha gyanús volt számodra, hogy a while és az until ciklusok mennyire hasonlók, akkor igazad volt.
#!/bin/bash
for i in $( ls ); do
echo elem: $i
done
A második sorban deklaráltunk egy "i" nevű változót, ami majd sorra felveszi a $( ls ) sztring különböző értékeit.
A harmadik sor szükség esetén méretesebb is lehet, vagy több sor is szerepelhet a ciklusmagban a done (4. sor) kulcsszó előtt.
A "done" (4. sor) jelzi, hogy a $i értéket használó kódrészlet befejeződött. Innentől kezdve a $i új értéket vehet fel.
Ennek a szkriptnek így nem sok értelme van. A for ciklus használatának egy sokkal hasznosabb módja, ha az előző példánál csak bizonyos fájlokat vizsgálunk.
Fiesh tanácsára került ide ez a példa, ami egy C/Perl-szerű for ciklust mutat be.
#!/bin/bash
for i in `seq 1 10`;
do
echo $i
done
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo A számláló értéke: $COUNTER
let COUNTER=COUNTER+1
done
Ez a szkript a jól ismert "for" ciklust utánozza (C, Pascal, perl, stb.).
#!/bin/bash
COUNTER=20
until [ $COUNTER -lt 10 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done