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.
$ dateVé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.
$ abcdVé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.
$ sortieSelon 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!