Codes de retour personnalisés dans unix

Je veux retourner des codes comme 0-succès, 4-avertissement , 8-échec . Shell a seulement deux codes de retour i.e 0 et 1. Est-il possible d'avoir au-dessus du code personnalisé? Pour le succès j'ai besoin de 0 et pour l'échec j'ai besoin de 8.

0
si [$? -eq 0]; then echo -e "Fichier de paramètres avec succès \ n code de retour = $? \ n" else echo -e "Fichier de paramètres non chargé \ n code de retour = $? \ n" exit 8 fi Je reçois le code de retour comme 1 incase d'échec
ajouté l'auteur chhaya vishwakarma, source
Je vote pour clore cette question hors sujet parce que la question repose sur une fausse hypothèse.
ajouté l'auteur chepner, source
De nombreux utilitaires retournent différents codes de sortie en cas d'échec - voir par exemple man curl (section CODES DE SORTIE).
ajouté l'auteur el.pescado, source
@chhayavishwakarma $? fait référence à la dernière instruction exécutée, vous devez donc l'écraser avant qu'il ne soit renvoyé.
ajouté l'auteur el.pescado, source
Shell ne donne pas seulement deux codes de retour? Essayez bash -c 'exit 123' || echo $? dans un shell et observe que le code d'état 123 est retourné.
ajouté l'auteur Cyrbil, source

3 Réponses

Fonctions dans un script et le script lui-même renvoie un   statut de sortie. La dernière commande exécutée dans la fonction ou le script   détermine le statut de sortie. Dans un script, une commande de sortie nnn peut   être utilisé pour fournir un statut de sortie nnn au shell (nnn doit être un   nombre entier compris entre 0 et 255). ( source )

De plus, la plupart des langages de programmation vous permettent de renvoyer un code d'état 8 bits.

In shell you can get the most recent status code with the variable $?. And you can send one by using either exit X or return X where -1

0
ajouté

Vous pouvez renvoyer n'importe quelle valeur de 8 bits, mais seulement 0 signifie succès, toute autre valeur est considérée comme un échec. En cas d'échec, la valeur elle-même n'a pas de signification prédéfinie, vous pouvez choisir n'importe quelle sémantique que vous voulez.

0
ajouté

Vous pouvez utiliser n'importe quel statut de sortie 8 bits dans un script shell. Seul 0 est considéré comme un succès tous les autres sont des échecs.

0
ajouté