Comment vérifier le statut de sortie d'une commande sous Linux
Lorsque vous travaillez sur un système Linux, chaque commande que vous exécutez renvoie un code d'état (également appelé statut de sortie ou code de retour) qui vous indique si elle s'est exécutée avec succès ou a échoué.
En tant qu'utilisateur de Linux, surtout si vous apprenez le shell scripting ou si vous dépannez, savoir comment vérifier le statut de sortie d'une commande est très important.
Dans cet article, je vais expliquer ce que signifie le statut de sortie, comment le vérifier et pourquoi c'est important.
Qu'est-ce que le statut de sortie dans Linux ?
Chaque fois que vous exécutez une commande sous Linux, le système lui attribue silencieusement une fiche de score à la fin, qui n'est qu'un nombre appelé statut de sortie (ou code de retour).
- Si le nombre est
0, cela signifie que la commande s'est exécutée avec succès, sans aucune erreur. - Si le nombre n'est pas
0, cela signifie que la commande n'a pas réussi à s'exécuter d'une certaine manière.
Pensez-y de cette façon :
0=« Tout va bien ! »1=“Une erreur s'est produite (erreur générale)”2,127,126, etc.=Différents types de problèmes, comme « fichier non trouvé » ou « commande non exécutable ».
Vous ne voyez pas toujours ces nombres affichés à l'écran, mais Linux les stocke dans une variable spéciale appelée $?. Vous pouvez la vérifier à tout moment pour savoir si votre dernière commande a réussi ou échoué.
Astuce : Ces codes de sortie sont particulièrement importants lorsque vous écrivez des scripts Bash car ils vous aident à prendre des décisions en fonction de si une commande a réussi ou échoué.
Comment vérifier le statut de sortie d'une commande
Sous Linux, le statut de sortie de la dernière commande que vous avez exécutée est stocké dans une variable spéciale du shell appelée :
$?
La meilleure façon de comprendre le code de sortie est en exécutant réellement des commandes.
Exemple 1 : Commande réussie
ls
echo $?
Que se passe-t-il ici :
- Tout d'abord,
lsliste les fichiers dans votre répertoire actuel. - Puisque la commande a fonctionné sans aucun problème, Linux définit le statut de sortie sur
0. - Lorsque nous vérifions immédiatement le statut en utilisant
echo $?, il affiche0.
Un code de sortie 0 signifie toujours un succès. Donc, dans ce cas, la commande ls a fait exactement ce que nous attendions.
Exemple 2 : Commande échouée
ls /nonexistent
echo $?
Que se passe-t-il ici :
- Nous avons essayé de lister les fichiers dans un répertoire appelé
/nonexistent. - Ce répertoire n'existe pas sur le système, donc la commande
lséchoue. - Linux définit alors le statut de sortie sur un nombre non nul (dans ce cas
2). - Lorsque nous vérifions avec
echo $?, nous voyons :
Exemple 3 : Utilisation du code de sortie dans un script
Les statuts de sortie deviennent vraiment utiles lorsque vous les utilisez dans des scripts shell, car les scripts doivent souvent prendre des décisions en fonction du succès ou de l'échec d'une commande.
Regardons un exemple simple :
#!/bin/bash
ls /etc > /dev/null
if [ $? -eq 0 ]; then
echo "Command successful!"
else
echo "Command failed!"
fi
Que se passe-t-il ici :
- Si la commande
lsfonctionne → affiche « Commande réussie ! ». - S'il échoue → affiche “Commande échouée ! ”.
Une manière plus propre : utiliser && et ||
Au lieu de vérifier $? à chaque fois, vous pouvez enchaîner les commandes :
command && echo "Succès"→ exécute la deuxième commande uniquement si la première a réussi.command || echo "Failed"→ exécute la deuxième commande uniquement si la première échoue.
Exemple:
ls /etc && echo "Found it!" || echo "Not found!"
Codes d'état de sortie courants
Voici quelques codes de sortie fréquemment rencontrés :
| Code de sortie | Sens |
|---|---|
| Succès | |
| 1 | Erreur générale |
| 2 | Mauvaise utilisation de la commande shell |
| 126 | Commande trouvée mais non exécutable |
| 127 | Commande introuvable |
| 130 | Script terminé par Ctrl+C |
| 255 | Statut de sortie hors plage |
Pensées finales
Le statut de sortie est un petit nombre, mais il joue un grand rôle dans l'exécution de commandes de manière interactive ou dans l'écriture de scripts shell. Comprendre les codes de sortie vous aide à déboguer les problèmes et à contrôler votre flux de travail.
La prochaine fois qu'une commande ne fonctionne pas comme prévu, ne vous contentez pas de regarder le message d'erreur, vérifiez aussi le statut de sortie !

