Boucle for :

1 for i in $(ls)
2 do
3   echo $i
4 done

Note : A éviter pour la lecteur de fichier ligne à ligne, car la boucle for évalue mot à mot !

ou passer pas la modification de IFS :

1 old_IFS=$IFS
2 IFS=$'\n'
3 for i in $(cat fichier)
4 do
5   echo $i
6 done
7 IFS=$old_IFS

Boucle while :

Exécute la commande tant que la condition est vrai :

 1 while [ $a -lt 10 ]
 2 do
 3   echo $a
 4   a=expr $a + 1
 5 done
 6 0
 7 1
 8 2
 9 3
10 4
11 5
12 6
13 7
14 8
15 9

1 while read ligne
2 do
3   echo $ligne
4 done < fichier

Note : La boucle while exécute un bloc d'instructions tant qu'une certaine condition est satisfaite, lorsque cette condition devient fausse la boucle se termine. ou

1 cat fichier | while  read ligne
2 do
3   echo $ligne
4 done

Boucle until :

Exécute la commande jusqu'à ce que la condition soit vrai :

 1 a=0
 2 until [ ! $a -lt 10 ]
 3 do
 4    echo $a
 5    a=expr $a + 1
 6 done
 7 
 8 0
 9 1
10 2
11 3
12 4
13 5
14 6
15 7
16 8
17 9

Exemples

 1 for var in 0 1 2 3 4 5 6 7 8 9 22
 2 do
 3  echo $var
 4 done
 5 0
 6 1
 7 2
 8 3
 9 4
10 5
11 6
12 7
13 8
14 9
15 22

1 for FILE in $HOME/.bash*
2 do
3   echo $FILE
4 done
5 /home/alasta/.bash_history
6 /home/alasta/.bash_profile
7 /home/alasta/.bashrc

 1 for ((i = 10; i >= 0; i -= 1))
 2 do  
3 echo $i 4 done 5 10 6 9 7 8 8 7 9 6 10 5 11 4 12 3 13 2 14 1 15 0