Ho difficoltà a trovare un elenco completo e aggiornato di codici di errore da Bash. es.:
$ udevadm info /dev/sdx; echo Exit code $?
Unknown device, --name=, --path=, or absolute path in /dev/ or /sys expected.
Exit code 4
Come si dovrebbe cercare tali codici di uscita?
Risposta accettata:
tl;dr I codici di uscita sono specifici dell'applicazione.
Ci sono alcune convenzioni sciolte. false
e qualsiasi cosa abbia successo con il prefisso !
(come ! true
) nelle shell POSIX restituisce il codice di uscita 1, ma uno sviluppatore può utilizzare qualsiasi codice di uscita compreso tra 0 e 255 per quello che vuole. In definitiva devi guardare la sua documentazione (nel migliore dei casi) o il codice (nel peggiore dei casi) per sapere cosa significa. Per i programmi con man
i codici di uscita delle pagine saranno spesso elencati in una sezione denominata EXIT STATUS
(Strumenti GNU come find
).
Alcuni significati popolari sono elencati in /usr/include/sysexits.h
– Cerco di usarli quando possibile. Come sottolinea @AnsgarEsztermann, questi non sono un riferimento Bash, e nemmeno un riferimento all'applicazione, ad eccezione di coloro che scelgono di usarlo (sviluppatori C/C++ principalmente secondo l'ABS).