Bash:boucles

De Lowgeek wiki

Bash.png

Boucles

Title2.png

Boucle « while...done »

Syntaxe générale :

<syntaxhighlight lang="bash"> while condition ; do

...

done </syntaxhighlight>

Exemple :

<syntaxhighlight lang="bash"> i=0 ; while [ $i -lt 5 ] ; do

i=$((i+1))
echo $i

done </syntaxhighlight>

La même chose sur une ligne :

<syntaxhighlight lang="bash"> i=0 ; while [ $i -lt 5 ] ; do i=$((i+1)) ; echo $i ; done </syntaxhighlight>

Un autre exemple en utilisant l’instruction «  break  »permettant de sortie de la boucle :

<syntaxhighlight lang="bash"> i=0 while true ; do

      echo "$i avec break"
      i=$((i+1))
      [ $i -eq 5 ] && break

done </syntaxhighlight>


Title2.png

Boucle « until...done »

Syntaxe générale :

<syntaxhighlight lang="bash"> until condition ; do

...

done </syntaxhighlight>


Title2.png

Boucle « for...done »

Le fonctionnement de cette boucle est très différent de celui des autres langages.

Syntaxe :

<syntaxhighlight lang="bash"> for variale in liste_de_mots ; do

...

done </syntaxhighlight>

Exemple :

<syntaxhighlight lang="bash"> $ for var in a b c d ; do echo $var ; done </syntaxhighlight>

Renommer une série de fichiers :

<syntaxhighlight lang="bash"> for i in *.tgz ; do mv $i ${i%tgz}tar.gz ; done </syntaxhighlight>


Title2.png

Boucle « select...done » permet de réaliser des listes de choix

Exemple :

<syntaxhighlight lang="bash"> $ select var in a b c ; do echo $var ; done 1) a 2) b 3) c

  1. ?

</syntaxhighlight>