Next: Boucles: l'instruction for.
Up: Les scripts du shell.
Previous: Introduction.
Table des matières
Le shell lit chaque ligne séquentiellement de haut en bas: c'est le
flux de programmation. Si, maintenant, vous désirez qu'une commande
soit exécutée plus d'une fois, il faut altérer le flux de programmation.
La commande while exécute une séquence
contrôlée de commandes de manière répétée. En voici un exemple (-le
veut dire less than or equal: plus petit
ou égal):
N=1
while test "$N" -le "10"
do
echo "Number $N"
N=$[N+1]
done
|
L'initialisation N=1 crée une variable
N et lui attribue une valeur 1.
La commande while exécute toutes les commandes
entre do et done,
répétitivement juqu'à ce que la condition de test
ne soit plus vérifiée (en l'occurrence, jusqu'à ce que N
ne soit plus inférieur ou égal à 10). L'expression
-le signifie less
than or equal to. Voir test (1) (c'est-à-dire
man (1) test)
pour rencontrer d'autres types de test que vous pouvez appliquer à
des variables. Observez aussi la manière dont N
est substitué avec la nouvelle valeur qui augmente d'une unité à
chaque répétition de la boucle while.
Vous devriez constater que chaque ligne est une commande; les commandes
sont séparées par un passage à la ligne.
Vous pouvez aussi avoir plus d'une commande par ligne pour autant
qu'elles soient séparées par un point-virgule comme dans l'exemple
suivant:
N=1; while test "$N" -le "10";
do echo "Number $N"; N=$[N+1]; done
|
(Essayez de décompter à partir de 10 avec (greater
than or equal to)). Il est aisé de constater que les scripts de
shell sont puissants parce que tout type de commande peut être exécuté
avec des conditions et des boucles.
La déclaration until est identique à while
sauf que sa logique est inverse. La même fonctionnalité est rencontrée
avec -gt (greater
than):
N=1; until test "$N" -gt "10";
do echo "Number $N"; N=$[N+1]; done
|
Next: Boucles: l'instruction for.
Up: Les scripts du shell.
Previous: Introduction.
Table des matières
1-01-2006