Sommaire

Codes retour

Toute commande sous Linux retourne un code à la fin de son exécution. Ce code témoigne du bon déroulement de son exécution : zéro lorsque le programme s’est terminé correctement, différent de zéro dans le cas contraire.

Le code retour d’une commande est une valeur comprise entre 0 et 255.

Une même commande peut renvoyer différents codes si son exécution s’est mal déroulée, ceci pour plusieurs raisons. Par exemple, la commande cp peut échouer parce que le fichier source est inexistant, les droits d’écriture sur le répertoire cible insuffisants, le système de fichiers saturé, etc.

La variable spéciale $? contient le code retour de la dernière commande exécutée :

[nicolas]$ pwd 
/home/nicolas 
[nicolas]$ echo $? 
0 
[nicolas]$ ls zorglub 
ls: zorglub: No such file or directory 
[nicolas]$ echo $? 
1 
[nicolas]$ echo $? 
0

Le dernier code retour est bien zéro car il indique que la commande précédente (echo $?) s’est bien déroulée. Pour réutiliser ultérieurement le code retour d’un programme, il faut prendre soin de l’enregistrer dans une variable :

[nicolas]$ ls zorglub 
ls: zorglub: No such file or directory 
[nicolas]$ cr=$? 
[nicolas]$ pwd 
/home/nicolas 
[nicolas]$ echo $? 
0 
[nicolas]$ echo $cr 
1

Par défaut, le code retour ...