Page suivante Page précédente Table des matières

5. Code de retour

Toute commande une fois terminée renvoie un code de retour, sous la forme d'un nombre entier. La valeur 0 signifie généralement que tout s'est bien déroulé. Une valeur différente de 0 signifie au contraire qu'un erreur s'est produite.

Le code de retour de la dernière commande est toujours accessible via la variable spéciale `$?' :

$ grep -q laurent /etc/passwd    
$ echo $?
=> 0
$ grep -q toto /etc/passwd
$ echo $?
=> 1
$ grep -q laurent /etc/passwd ; echo "Code retour : $?"
=> Code retour : 0
$ echo $?
=> 0
$ grep -q toto /etc/passwd ; echo "Code retour : $?"
=> Code retour : 1
$ echo $?
=> 0
$ grep -q toto /etc/passwd ; code_erreur=$?; echo "Coderetour : $code_erreur"
=> Code retour : 1
$ echo $code_erreur
1

5.1 Enchaînement conditionnel

Le `||' permet d'exécuter une commande seulement si la première a échoué :

$grep -q toto /etc/passwd || echo toto
=> toto
$grep -q laurent /etc/passwd || echo toto

Inversement, `&&' permet d'exécuter une commande seulement si la première a retourné 0 :

$grep -q toto /etc/passwd && echo toto
$grep -q laurent /etc/passwd || echo toto
=> toto

On préferrera généralement utiliser la construction `if', qui est plus clair syntaxiquement parlant, bien que moins consise. Mais c'est pas mal une affaire goût.


Page suivante Page précédente Table des matières