7.2. Code de retour d'un programme shell

Le code de retour d'un programme shell est le code de retour de la dernière commande qu'il a exécutée.

Soit le programme shell lvi contenant l'unique commande ls vi.

#!/bin/bash
# @(#) lvi
 
ls vi

Cette commande produira une erreur car vi ne se trouve pas dans le répertoire courant ; après exécution, le code de retour de lvi sera de celui de la commande ls vi (dernière commande exécutée).

$ lvi
ls: impossible d'accéder à vi: Aucun fichier ou dossier de ce type
$
$ echo $?
2    => code de retour de la dernière commande exécutée par lvi
$    => c.-à-d. ls vi

Autre exemple avec le programme shell lvi1 de contenu :

#!/bin/bash
# @(#) lvi1

ls vi
echo Fin

La dernière commande exécutée par lvi1 sera la commande interne echo qui retourne un code de retour égal à 0.

$ lvi1
ls: impossible d'accéder à vi: Aucun fichier ou dossier de ce type
Fin
$
$ echo $?
0     => code de retour de la dernière commande exécutée par lvi (echo Fin)
$

Il est parfois nécessaire de positionner explicitement le code de retour d'un programme shell avant qu'il ne se termine : on utilise alors la commande interne exit.