GNU/Linux >> Linux Esercitazione >  >> Linux

Come cercare i codici di uscita per le applicazioni?

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).


Linux
  1. Le app Flatpak sembrano fuori posto? Ecco come applicare i temi GTK alle applicazioni Flatpak

  2. Come ottenere ulteriori informazioni sull'origine di un codice di uscita?

  3. Come abilitare il core dump per le applicazioni su CentOS/RHEL

  4. Cosa sono i codici di uscita Bash in Linux

  5. Come attendere l'uscita dei processi non figli

Comando di uscita Bash e codici di uscita

Come stampare la scheda QR Code per la connessione al WiFi

Codici di uscita della riga di comando di Bash demistificati

Come disinstallare le applicazioni WINE

Come ottenere il codice di uscita del processo generato nello script di shell atteso?

Come posso generare la copertura del codice per i pacchetti Swift su Linux o OS X?