Instructions de Contrôle
Écrit par VieuxProf   
01-01-1999

if condition; then liste1; else liste2; fi
if test expression; then ...; fi
if [ expression ]; then ...; fi
case expression in
modele1) liste de commandes 1 ;;
modele2) liste de commandes 2 ;;
( ... )
esac
while condition; do liste ; done
until condition; do liste ; done
for mavariable in listeDeValeurs; do liste; done

  • Un code retour (exit status) est émis par toute commande UNIX ou script vers le shell après exécution. Les valeurs autorisées vont de 0 à 255. La variable prédéfinie ? est initialisée avec le code retour de la dernière commande exécutée.

     

    0 exécution réussie ou valeur logique VRAI
    autre chiffre erreur d'exécution ou valeur logique FAUX

     

  • L'opérateur ! (qui signifie NON) permet d'inverser le code retour de la commande qu'il précède.



if condition
then
   liste de commandes pour code retour de condition=0
else
   liste de commandes pour code retour de condition!=0
fi
commande1 && commande2
if commande1; then commande2; fi
(commande2 s'exécute si commande1 renvoie 0)
commande1 || commande2
if commande1; then : ; else commande2; fi
(commande2 s'exécute si commande1 ne renvoie pas 0)



La commande test n'affiche rien. Elle renvoie 0 si expression est VRAI, 1 si expression est FAUX.

    if test expression; then ...; fi
    if [ expression ]; then ...; fi
Test d'un attribut de fichier
-d monfichier VRAI si monfichier existe et que c'est un répertoire
-e monfichier VRAI si monfichier existe
-f monfichier VRAI si monfichier existe et qu'il est régulier (ordinaire)
-L monfichier VRAI si monfichier existe et que c'est un lien
-r monfichier VRAI si monfichier existe et qu'il est acessible en lecture
-s monfichier VRAI si monfichier existe et que sa taille est différente de 0
-w monfichier VRAI si monfichier existe et qu'il est accessible en écriture
-x monfichier VRAI si monfichier existe et qu'il est exécutable
Comparaison de chaînes de caractères
-z machaine VRAI si la longueur de machaine est 0
-n machaine VRAI si la longueur de machaine est différente de 0
machaine1 = machaine2 VRAI si machaine1 et machaine2 sont identiques
machaine1 != machaine2 VRAI si machaine1 et machaine2 sont différentes
Comparaison de nombres
arg1 -eq arg2 VRAI si arg1=arg2
arg1 -ne arg2 VRAI si arg1!=arg2
arg1 -lt arg2 VRAI si arg1<arg2
arg1 -le arg2 VRAI si arg1<=arg2
arg1 -gt arg2 VRAI si arg1>arg2
arg1 -ge arg2 VRAI si arg1>=arg2
Opérateurs logiques
!expression VRAI si expression est fausse
expression1 -a expression2 VRAI si expression1 ET expression2 sont vraies
expression1 -o expression2 VRAI si expression1 OU expression2 est vraie


case expression in
modele1) liste de commandes 1 ;;
modele2) liste de commandes 2 ;;
( ... )
esac
* suite qcq de caractères
? caractère qcq
[liste] caractère qcq de la liste
| ou bien



while condition # TANT QUE ...
do
   liste de commandes exécutées tant que code retour=0
done
until condition # JUSQU'A CE QUE ...
do
   liste de commandes exécutées jusqu'à ce que code retour=0
done
for mavariable in listeDeValeurs # POUR TELLES VALEURS, FAIRE ...
do
   liste de commandes
done
while condition
do
   if ...; then
      continue # interrompt la boucle while et revient au début
   fi
   if ...; then
      break # interrompt la boucle while et passe après done
   fi
done
Dernière mise à jour : ( 02-02-2008 )