Mám potíže s nalezením komplexního aktuálního seznamu chybových kódů z Bash. např.:
$ udevadm info /dev/sdx; echo Exit code $?
Unknown device, --name=, --path=, or absolute path in /dev/ or /sys expected.
Exit code 4
Jak má člověk hledat takové výstupní kódy?
Přijatá odpověď:
tl;dr Výstupní kódy jsou specifické pro aplikaci.
Existují určité volné konvence. false
a cokoli úspěšného s předponou !
(jako ! true
) v shellech POSIX vrací výstupní kód 1, ale vývojář může použít jakýkoli výstupní kód mezi 0 a 255 pro cokoli. Nakonec se musíte podívat na jeho dokumentaci (v nejlepším případě) nebo kód (v nejhorším případě), abyste věděli, co to znamená. Pro programy s man
výstupní kódy stránek budou často uvedeny v sekci s názvem EXIT STATUS
(Nástroje GNU jako find
).
Některé oblíbené významy jsou uvedeny v /usr/include/sysexits.h
– Snažím se je používat, kdykoli je to možné. Jak zdůrazňuje @AnsgarEsztermann, nejedná se o odkaz na Bash, dokonce ani o odkaz na aplikaci s výjimkou těch, kteří se rozhodli je používat (vývojáři C/C++ primárně podle ABS).