Introduction à l’état de sortie dans Linux
Sous Linux, chaque commande exécutée retourne un état de sortie qui indique si son exécution a été réussie ou non. Cette information est cruciale pour le développement de scripts ou l’administration système, car elle permet de prendre des décisions basées sur les résultats des commandes précédentes.
Comprendre la valeur de retour des commandes
Chaque fois qu’une commande est lancée dans un terminal Linux, elle génère un code de sortie. Ce code est accessible via la variable spéciale $?
. Un code de sortie de 0 signifie que la commande a été exécutée avec succès, tandis qu’un code différent de zéro indique qu’une erreur est survenue. Il est donc essentiel de vérifier cette valeur après l’exécution de chaque commande, surtout lorsqu’on automatise des tâches avec des scripts.
Comment savoir si la commande Linux est exécutée avec succès ?
Pour vérifier si votre commande a été réussie, la procédure est simple :
- Exécutez votre commande dans le terminal.
- Immédiatement après l’exécution de la commande, tapez :
echo $?
- Analysez le résultat affiché. Si vous voyez un
0
, la commande a réussi. Pour toute autre valeur, une erreur s’est produite.
Exécution de commandes et suivi de leur statut
Lorsque vous travaillez avec des scripts ou des commandes successives, vous pouvez vouloir capturer et répondre à l’état de sortie d’une commande dans un script shell. Cela se fait souvent par une déclaration conditionnelle. Par exemple :
ma_commande
if [ $? -ne 0 ]; then
echo "Une erreur s'est produite lors de l'exécution de la commande."
fi
Ce bloc conditionnel vérifie si la dernière commande a échoué et vous permet d’agir en conséquence.
Exploiter les codes d’erreur dans des scripts avancés
Dans des scripts plus complexes, il peut être nécessaire d’implémenter un contrôle d’erreur avancé. En fonction des différentes valeurs de retour, vous pouvez réaliser différentes actions. Par exemple :
ma_commande
case $? in
0) echo "Succès !";;
1) echo "Erreur générique.";;
2) echo "Commande introuvable.";;
*) echo "Erreur inconnue.";;
esac
Cette méthode permet d’affiner le diagnostic et d’améliorer la gestion des erreurs de votre script.
Vérifier l’identifiant de processus d’une commande exécutée
Pour suivre des commandes exécutées en arrière-plan, il est possible d’obtenir l’identifiant de processus (PID) de la dernière commande. Cela peut être fait avec la variable $!
. Voici comment procéder :
- Lancez une commande en arrière-plan, par exemple :
firefox &
. - Pour récupérer son PID, tapez :
echo $!
. - Vous pouvez stocker ce PID dans une variable pour un usage ultérieur.
FAQ
- Qu’est-ce que la variable
$?
?
La variable$?
contient le code de retour de la dernière commande exécutée. Elle est utilisée pour déterminer le succès ou l’échec de cette commande. - Que signifie un code de sortie différent de 0 ?
Un code de sortie différent de 0 indique qu’une erreur s’est produite lors de l’exécution de la commande. Différents codes peuvent fournir des informations sur le type d’erreur survenue. - Comment afficher l’historique des commandes avec leurs états de sortie ?
Vous pouvez créer un script qui exécute chaque commande et imprime son code de retour, mais Linux ne stocke pas les états de sortie des commandes exécutées dans l’historique par défaut.