Les boucles en Bash

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

Fatal error: Uncaught exception 'wfWAFStorageFileException' with message 'Unable to save temporary file for atomic writing.' in /var/www/alternc/c/cinfo/www/courbeil.com/documentation/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php:34 Stack trace: #0 /var/www/alternc/c/cinfo/www/courbeil.com/documentation/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php(658): wfWAFStorageFile::atomicFilePutContents('/var/www/altern...', '<?php exit('Acc...') #1 [internal function]: wfWAFStorageFile->saveConfig('livewaf') #2 {main} thrown in /var/www/alternc/c/cinfo/www/courbeil.com/documentation/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 34