J'ai du mal à trouver une liste complète et à jour des codes d'erreur de Bash. par exemple :
$ udevadm info /dev/sdx; echo Exit code $?
Unknown device, --name=, --path=, or absolute path in /dev/ or /sys expected.
Exit code 4
Comment est-on censé rechercher de tels codes de sortie ?
Réponse acceptée :
tl;dr Les codes de sortie sont spécifiques à l'application.
Il y a quelques conventions lâches. false
et tout ce qui réussit précédé de !
(comme ! true
) dans les shells POSIX renvoient le code de sortie 1, mais un développeur peut utiliser n'importe quel code de sortie entre 0 et 255 pour ce qu'il veut. En fin de compte, vous devez regarder sa documentation (dans le meilleur des cas) ou le code (dans le pire des cas) pour savoir ce que cela signifie. Pour les programmes avec man
les codes de sortie des pages seront souvent listés dans une section nommée EXIT STATUS
(Outils GNU comme find
).
Certaines significations populaires sont répertoriées dans /usr/include/sysexits.h
– J'essaie de les utiliser autant que possible. Comme le souligne @AnsgarEsztermann, il ne s'agit pas d'une référence Bash, ni même d'une référence d'application, sauf pour ceux qui choisissent de l'utiliser (développeurs C/C++ principalement selon l'ABS).