Como procuro códigos de saída para aplicativos?

Como procuro códigos de saída para aplicativos?

Estou tendo dificuldade em localizar uma lista abrangente e atualizada de códigos de erro do Bash. por exemplo:

$ udevadm info /dev/sdx; echo Exit code $?
Unknown device, --name=, --path=, or absolute path in /dev/ or /sys expected.
Exit code 4

Como alguém deve procurar esses códigos de saída?

Responder1

Existem vários códigos de saída comsignificados especiais reservados:

Significado do número do código de saída
1 Catchall para erros gerais
2 Uso indevido de recursos internos do shell (de acordo com a documentação do Bash)
126 O comando invocado não pode ser executado
127 “comando não encontrado”
128+n Sinal de erro fatal "n"
130 Script finalizado por Ctrl-C
255* Status de saída fora do alcance

Tudo abaixo de 125 é um jogo justo para os desenvolvedores e só pode ser adivinhado, poisnotas l0b0 em sua resposta, lendo a manpágina do aplicativo, ou o código-fonte, para determinar o que o código significa (se, de fato, estiver documentado).

Responder2

dr.Os códigos de saída são específicos da aplicação.

Existem algumas convenções soltas. falsee qualquer coisa bem-sucedida prefixada com !(como ! true) em shells POSIX retorna o código de saída 1, mas um desenvolvedor pode usar qualquer código de saída entre 0 e 255 para o que quiser. Em última análise, você deve consultar a documentação (na melhor das hipóteses) ou o código (na pior das hipóteses) para saber o que isso significa. Para programas com manpáginas, os códigos de saída geralmente serão listados em uma seção chamada EXIT STATUS(ferramentas GNU como find).

Alguns significados populares estão listados em /usr/include/sysexits.h- tento usá-los sempre que possível. Como@AnsgarEsztermann aponta, estas não são uma referência Bash, nem mesmo uma referência de aplicativo, exceto para aqueles que optam por usá-las (desenvolvedores C/C++ principalmentede acordo com o ABS).

informação relacionada