Académique Documents
Professionnel Documents
Culture Documents
Système d’Exploitation
UNIX
Programmation Shell:
Tests, Conditions et Boucles
A.ROUDANE
Les types de Tests
Exemples:
Branchement conditionnel :
if-then-elif-else-fi
if liste-commandes-1
then liste-commandes-2
elif liste-commandes-3 <−−− autant de fois que nécessaire
else liste-commandes-4 <−−− si nécessaire
fi
#!/bin/sh
if commande [options] arguments > resultats.txt 2> erreurs.txt
then
# code de retour (exit) valant 0 La condition (booléenne) est en général le
bloc-1-de-commandes-unix code de retour d’une commande UNIX.
else Le code de retour de la commande
# code de retour (exit) différent de 0 détermine le test « if » :
bloc-2-de-commandes-unix •Code de retour valant zéro : Le test
fi «if» est vrai.
•Code de retour non nul : Le test «if»
est faux
Branchement conditionnel :
if-then-elif-else-fi
Exemples:
Plusieurs tests à la fois
case expression in
motif1 )
liste-commandes ;; autant de fois
...
*)
liste-commandes ;;
esac
Exemple:
Boucle for-do-done
Exemple:
Boucle while-do-done
while liste-commandes-1
do
liste-commandes-2
done
La valeur testée par la commande while est l’état de sortie de la
dernière commande de liste-commandes-1.
Si l’état de sortie est 0, alors le Shell exécute liste-commandes-2 puis
recommence la boucle.
$ cat test_while1
while [ "$1" ] $ ./test_while1 un "deux trois" quatre
do un
echo $1 deux trois
shift quatre
done
Boucle: while-do-done
Exemple:
Contrôle du flux d’exécution :
break, continue
break ou break n
permet de sortir d’une boucle for ou while.
Si n est précisé, il indique le nombre d’imbrication concernée par le
break.
continue n
permet de passer à l’itération suivante d’une boucle for ou while.
Si n est précisé, il indique le nombre d’imbrication concernée par le
continue.
Contrôle du flux d’exécution :
break, continue
Exemple:
Exercices
1) Ecrire un script qui lit un entier à partir du clavier puis affiche son
signe (négatif, positif ou nul)