Linux - Les boucles
Alasta 22 Juin 2015 linux bash Linux cli
Description : Voici un mémento des boucles shell.
Boucle for :
for i in $(ls)
do
echo $i
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 :
old_IFS=$IFS
IFS=$'\n'
for i in $(cat fichier)
do
echo $i
done
IFS=$old_IFS
Boucle while :
Exécute la commande tant que la condition est vrai :
while [ $a -lt 10 ]
do
echo $a
a=`expr $a + 1`
done
0
1
2
3
4
5
6
7
8
9
while read ligne
do
echo $ligne
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
cat fichier | while read ligne
do
echo $ligne
done
Boucle until :
Exécute la commande jusqu’à ce que la condition soit vrai :
a=0
until [ ! $a -lt 10 ]
do
echo $a
a=`expr $a + 1`
done
0
1
2
3
4
5
6
7
8
9
Exemples
for var in 0 1 2 3 4 5 6 7 8 9 22
do
echo $var
done
0
1
2
3
4
5
6
7
8
9
22
for FILE in $HOME/.bash*
do
echo $FILE
done
/home/alasta/.bash_history
/home/alasta/.bash_profile
/home/alasta/.bashrc
for ((i = 10; i >= 0; i -= 1))
do
echo $i
done
10
9
8
7
6
5
4
3
2
1
0