O que significa a saída 99?

4

Sou novo no Unix.

Só quero saber o que é a saída 99 e por que alguém a usaria e quais são os usos significativos dela.

Por exemplo, estou usando exit 99 .

    
por Java_Alert 17.04.2014 / 09:43

5 respostas

22

Não há significância para sair com o código 99, além do que talvez haja no contexto de um programa específico.

De qualquer forma, exit sai do shell com um determinado código de saída, neste caso, 99. Você pode encontrar mais informações em help exit :

exit: exit [n]
    Exit the shell.

    Exits the shell with a status of N.  If N is omitted, the exit status
    is that of the last command executed.
    
por 17.04.2014 / 09:46
12

Além do @Chris Down, há algum código de retorno reservado para o shell, eles têm um significado especial:

RETVAL   Meaning

1        General errors
2        Misusage
127      Command not found

Você pode consultar este para obter mais detalhes.

    
por 17.04.2014 / 09:56
3

Existe uma convenção de longa data (no Unix) para intervalos de status de retorno:

  • 0 significa sucesso
  • números positivos significam problemas menores, mas essencialmente a tarefa foi concluída
  • números negativos significam erro crítico (por exemplo, disco cheio, arquivo não encontrado)

Exatamente o que esses números positivos e negativos individuais significam depende do programador. Às vezes, você pode escolhê-los por compatibilidade com outros programas semelhantes (por exemplo, ferramentas do Gnu). @Gnouc lista alguns.

Não, não estou ciente de nenhum significado especial para sair do código 99, nunca o vi usado. Talvez isso signifique 'cerveja insuficiente'

Veja:

por 18.04.2014 / 08:42
2

Normalmente, se você concluir seu script em algum momento com:

exit 0

O shell receberá um 0 como o código de retorno . Este zero significa tudo estava bem .

No entanto, se o seu programa encontrou alguma condição de erro, você deve sair com um código de retorno diferente de zero, para informar ao shell que algo deu errado. Se você não quer ser mais específico, você pode simplesmente usar 1.

exit 1

No entanto, você pode informar o shell de um tipo específico de falhas usando outros números. Por exemplo, bash em si retorna 127 para programa não encontrado . Portanto, se você documentar o comportamento do seu script, poderá fazer algo útil depois de executá-lo, verificando o valor da variável especial $? , que contém o código de retorno do último programa executado.

Eu olhei para isto um tempo atrás e descobri que, por exemplo, o FreeBDS tinha algumas convenções muito úteis com relação a códigos de saída, documentadas em man 3 sysexits

    
por 17.04.2014 / 16:59
0

Alguns programadores irão fornecer muitos códigos de erros diferentes começando com 1. Novas versões podem introduzir novos códigos de erros específicos, de modo que o código deve ser usado para o
"todos os outros erros / erro não especificado"? Os códigos de saída serão truncados em 255, então eu escolheria 99 como "outro erro".

    
por 17.04.2014 / 12:01

Tags