Les boucles en Shell
Il y a plusieurs outils pour faire des boucles en Shell.
- While : tant que
- Until : jusqu’à ce que
- For : pour
while :
La forme pour l’utilisation de while est
while instructions
do
instructions à répéter
done
Le bloc « instructions à répéter » sera répéter tant que « instructions » sera vrai.
while est souvent utilisé pour conserver l’utilisateur dans le script, en créant une boucle infini, et en faisant un break au moment de sortir.
Exemple 1 (pas à faire mais bon)
echo "Tente ta chance : "
read NOMBRE
while test "$NOMBRE" != 10
do
echo "Le chiffre n'est pas bon, retente ta chance : "
read NOMBRE
done
echo "Bravo tu as gagné"
Exemple 2 un décompte
i=10
while [ $i -gt 0 ]; do
echo -n "$i"
sleep 1
let $[ i -= 1 ]
done
echo "0"
until
Until fait l’inverse de while.
Exemple 1 compteur
echo "jusqu'où voulez vous compter : "
read LIMIT
NOMBRE=0
until [ $LIMIT -eq $NOMBRE ]
do
echo -n "$NOMBRE"
sleep 1
NOMBRE=$(( $NOMBRE + 1 ))
done
echo "$NOMBRE"
// Ces scripts sont juste des exemples //
For
For permet de changer la valeur d’une variable en fonction d’une liste.
Si vous voulez vous pouvez décider des faire prendre à la variable VAR les valeurs 1 2 3 4 5 6 ….
Le forme d’utilisation de for est :
for variable in Liste de valeurs
do
Les instructions à répéter avec les valeurs de variable
done
Exemple 1, très simple
for var in 1 2 3 4 5 6 7 8 9
do
echo $var
done
Pour faire plus rapide et propre on peut utiliser la commande seq qui génère une suite de nombre (et il est possible de lui donner un pas, voir le man).
for var in $(seq 0 9)
do
echo $var
done