Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux
On se lasse de tout, sauf de comprendre.
Attribué à Virgile.
22 mai 2014 : Création de cette page.
Pour : un esprit logique et curieux.
Nousallons découvrir dans ce chapitre un autre élément de base de tous les langages : les boucles.
Ces structures permettent de répéter autant de fois que nécessaire une partie du code. En bash, on également les faire
La boucle for permet de parcourir une liste de valeurs et de boucler autant de fois qu'il y a de valeurs.
La boucle for permet de parcourir une liste de valeurs, elle exécute ainsi un certain nombre de fois une liste d'instructions, mais avec une ou plusieurs variables différentes. Syntaxe :
for variable in liste; do
instruction1
instruction2
...
done
ou, en plus court :
for variable in liste; do instruction1; instruction2; ...; done
Voici quelques exemples de listes, donnant le même résultat, afficher de 1 à 4 :
Ce sont les instructions qui définissent la fin de la boucle. Un exemple est plus explicite (ici, en écriture courte):
for ((var=1;var<5;var++)); do echo $var; done
Cette boucle va également afficher les chiffres de 1 à 4.
Les instructions définissent ici :
La boucle while exécute une liste d'instructions aussi longtemps qu'une certaine condition est remplie. Elle s'arrête lorsque la condition ne l'est plus.
var=0
limite=4
while [ $var -le $limite ]; dotant que $var plus petit ou égal à $limite
echo $var
((var++))
done
Vous pouvez également utiliser la boucle while pour traiter un fichier, ligne par ligne.
while read Ligne; do
traitement de la ligne
done < fichier
La boucle until est presque pareille, mais elle exécute la liste d'instructions aussi longtemps qu'une certaine condition n'est pas remplie.
La première ligne de la boucle s'écrirait alors :
var=0
limite=4
until [ $var -gt $limite ]; dojusqu'à ce que $var plus grand que $limite
echo $var
((var++))
done
select permet de générer un menu à partir d'une liste et de choisir un élément de ce menu. La syntaxe est :
select name in liste
instructions pouvant utiliser la variable $name
break pour sortir de la la boucle
done
Une ligne PS3="Votre texte" précèdera la boucle, pour introduire le menu.
Et voici ce fait select :
- Il génère un menu comprenant chacun des éléments de la liste précédé d'un numéro,
- il enregistre votre choix dans la variable, ici $name,
- il enregistre le numéro du choix dans une variable $REPLY,
- il exécute les instructions comprise entre les lignes select et done
- il répète le processus, sauf si vous avez prévu une instruction break