Programmation BASH

Code de sortie Bash de la dernière commande

Code de sortie Bash de la dernière commande
Lorsqu'une commande bash est exécutée, elle laisse derrière elle le code de sortie, indépendamment de l'exécution réussie ou infructueuse. L'examen du code de sortie peut offrir des informations utiles sur le comportement de la dernière commande exécutée.

Dans ce guide, découvrez comment vérifier le code de sortie bash de la dernière commande et quelques utilisations possibles de celle-ci.

Code de sortie Bash

Chaque commande UNIX/Linux exécutée par le script shell ou l'utilisateur laisse un état de sortie. C'est un nombre entier qui reste inchangé à moins que la prochaine commande ne soit exécutée. Si le code de sortie est 0, alors la commande a réussi. Si le code de sortie est différent de zéro (1-255), cela signifie une erreur.

Il existe de nombreuses utilisations potentielles du code de sortie bash. Le plus évident est, bien sûr, de vérifier si la dernière commande est exécutée correctement, surtout si la commande ne génère aucune sortie.

Dans le cas de bash, le code de sortie de la commande précédente est accessible à l'aide de la variable shell "$?".

Vérification du code de sortie de Bash

Lancez un terminal et exécutez n'importe quelle commande.

$ date

Vérifiez la valeur de la variable shell « $?" pour le code de sortie.

$ écho $?

Comme la commande "date" s'est exécutée avec succès, le code de sortie est 0. Que se passerait-il s'il y avait une erreur?

Essayons d'exécuter une commande qui n'existe pas.

$ abcd

Vérifiez le code de sortie.

$ écho $?

C'est une valeur non nulle, indiquant que la commande précédente ne s'est pas exécutée correctement.

Maintenant, regardez la commande suivante :

$ échantillon de chat.txt | grep "pièce"

Lorsque vous travaillez avec une commande qui a un ou plusieurs tubes, le code de sortie sera le dernier code exécuté dans le tube. Dans ce cas, c'est la commande grep.

Comme la commande grep a réussi, ce sera 0.

$ écho $?

Dans cet exemple, si la commande grep échoue, le code de sortie sera différent de zéro.

$ échantillon de chat.txt | grep "abcd"
$ écho $?

Incorporation du code de sortie dans les scripts

Le code de sortie peut également être utilisé pour le script. Une façon simple de l'utiliser est de l'affecter à une variable shell et de travailler avec elle. Voici un exemple de script shell qui utilise le code de sortie comme condition pour imprimer une sortie spécifique.

$ #!/bin/bash
$ echo "bonjour tout le monde"
$ statut=$?
$ [ $status -eq 0 ] && echo "commande réussie" || echo "commande infructueuse"

Lors de son exécution, le script générera la sortie suivante.

Voyons maintenant ce qui se passe lorsqu'il y a une commande invalide à exécuter.

$ #!/bin/bash
$ commande-aléatoire
$ statut=$?
$ [ $status -eq 0 ] && echo "commande réussie" || echo "commande infructueuse"

Lors de l'exécution, la sortie sera différente.

Explication de la valeur du code de sortie

Lorsque le code de sortie est différent de zéro, la valeur varie de 1 à 255. Maintenant, que signifie cette valeur?

Bien que la valeur soit limitée, l'explication de chaque valeur est unique au programme/script. Par exemple, "ls" et "grep" ont des explications différentes pour les codes d'erreur 1 et 2.

$ homme ls

$ homme grep

Définition de l'état de sortie dans le script

Lors de l'écriture d'un script, nous pouvons définir des valeurs de code de sortie personnalisées. C'est une méthode utile pour un débogage plus facile. Dans les scripts bash, c'est la commande "exit" suivie de la valeur du code de sortie.

$ sortie

Selon la convention, il est recommandé d'attribuer le code de sortie 0 pour une exécution réussie et d'utiliser le reste (1-255) pour les erreurs possibles. Lorsque vous atteindrez la commande exit, l'exécution du script shell sera terminée, alors faites attention à son placement.

Jetez un œil au script shell suivant. Ici, si la condition est remplie, le script se terminera avec le code de sortie 0. Si la condition n'est pas remplie, le code de sortie sera 1.

$ #!/bin/bash
$ si [[ "$(whoami)" != racine ]]; ensuite
$ echo "Pas utilisateur root."
$ sortie 1
$ fi
$ echo "utilisateur root"
$ sortie 0

Vérifiez le résultat de l'exécution de ce script sans privilège sudo ni utilisateur « root ».

$ ./goûter.sh
$ écho $?

Dernières pensées

Ce guide montre ce que sont les codes de sortie et comment vous pouvez les utiliser. Il montre également comment attribuer des codes de sortie appropriés dans un script bash.

Intéressé par les scripts bash? L'un des moyens les plus simples de commencer est d'écrire vos propres scripts. Consultez ce guide simple sur la façon d'écrire un script bash simple.

Bon calcul!

Bataille pour Wesnoth 1.13.6 Développement publié
Bataille pour Wesnoth 1.13.6 publiée le mois dernier, est la sixième version de développement de la 1.13.x series et il apporte un certain nombre d'am...
Comment installer League Of Legends sur Ubuntu 14.04
Si vous êtes fan de League of Legends, alors c'est l'occasion pour vous de tester League of Legends. Notez que LOL est pris en charge sur PlayOnLinux ...
Installez le dernier jeu de stratégie OpenRA sur Ubuntu Linux
OpenRA est un moteur de jeu de stratégie en temps réel libre/gratuit qui recrée les premiers jeux Westwood comme le classique Command & Conquer: Red A...