Cela dépend de l'environnement, mais je dirais que c'est un style médiocre.
Les systèmes de type Unix ont une convention forte selon laquelle un état de sortie de 0 indique la réussite et tout état de sortie non nul indique l'échec. Certains programmes, mais pas tous, distinguent différents types de défaillances avec différents codes de sortie différents de zéro; par exemple, grep
retourne généralement 0 si le modèle a été trouvé, 1 s'il ne l'était pas et 2 (ou plus) s'il y avait une erreur telle qu'un fichier manquant.
Cette convention est à peu près câblée dans les shells Unix. Par exemple, dans sh
, bash
et d'autres shells de type Bourne, l' if
instruction traite un état de sortie 0 comme succès / vrai et un état de sortie non nul comme échec / faux:
if your-command
then
echo ok
else
echo FAILURE
fi
Je pense que les conventions sous MS Windows sont similaires.
Maintenant, rien ne vous empêche d'écrire votre propre programme qui utilise des codes de sortie non conventionnels, surtout si rien d'autre ne va interagir avec lui, mais sachez que vous violez une convention bien établie, et il pourrait revenir et vous mordre plus tard .
La manière habituelle pour un programme de renvoyer ce type d'informations est de l'imprimer à stdout
:
status = $(your-command)
echo Result is $status
set -e
quelque part.