Código de saída do último comando

Código de saída do último comando

Quando um comando bash é executado, deixa para trás o código de saída, independentemente da execução bem -sucedida ou sem sucesso. Examinar o código de saída pode oferecer informações úteis sobre o comportamento do comando de última execução.

Neste guia, verifique como verificar o código de saída da Bash do último comando e alguns usos possíveis.

Código de saída Bash

Todo comando Unix/Linux executado pelo script ou usuário do shell deixa um status de saída. É um número inteiro que permanece inalterado, a menos que o próximo comando seja executado. Se o código de saída for 0, o comando foi bem -sucedido. Se o código de saída for diferente de zero (1-255), isso significa um erro.

Existem muitos usos potenciais do código de saída do Bash. O mais óbvio é, é claro, verificar se o último comando é executado corretamente, especialmente se o comando não gerar nenhuma saída.

No caso de Bash, o código de saída do comando anterior está acessível usando a variável shell “$?”.

Verificando o código de saída da basquete

Inicie um terminal e execute qualquer comando.

$ data

Verifique o valor da variável shell “$?”Para o código de saída.

$ echo $?

À medida que o comando "data" foi executado com sucesso, o código de saída é 0. O que aconteceria se houvesse um erro?

Vamos tentar executar um comando que não existe.

$ abcd

Verifique o código de saída.

$ echo $?

É um valor diferente de zero, indicando que o comando anterior não foi executado corretamente.

Agora, dê uma olhada no seguinte comando:

$ gat amostra.txt | Grep "moeda"

Ao trabalhar com um comando com um ou mais tubos, o código de saída será do último código executado no tubo. Nesse caso, é o comando grep.

Como o comando Grep foi bem -sucedido, será 0.

$ echo $?

Neste exemplo, se o comando grep falhar, o código de saída será diferente de zero.

$ gat amostra.txt | Grep "ABCD"
$ echo $?

Incorporando código de saída em scripts

O código de saída também pode ser usado para script. Uma maneira simples de usá -lo é atribuí -lo a uma variável de shell e trabalhar com ele. Aqui está um script de shell de amostra que usa o código de saída como condição para imprimir saída específica.

$ #!/BIN/BASH
$ eco "Hello World"
$ status = $?
$ [$ status -eq 0] && echo "comando bem -sucedido" || eco "comando malsucedido"

Ao ser executado, o script gerará a seguinte saída.

Agora, vamos ver o que acontece quando há um comando inválido para executar.

$ #!/BIN/BASH
$ Random-command
$ status = $?
$ [$ status -eq 0] && echo "comando bem -sucedido" || eco "comando malsucedido"

Ao ser executado, a saída será diferente.

Explicação de valor de código de saída

Quando o código de saída é diferente de zero, o valor varia de 1 a 255. Agora, o que esse valor significa?

Embora o valor seja limitado, a explicação de cada valor é exclusiva do programa/script. Por exemplo, "LS" e "Grep" tem explicações diferentes para o código de erro 1 e 2.

$ MAN LS
$ Man Grep

Definindo o status de saída no script

Ao escrever um script, podemos definir valores de código de saída personalizados. É um método útil para mais facilitar a depuração. Nos scripts Bash, é o comando "Exit" seguido pelo valor do código de saída.

$ saída

De acordo com a convenção, é recomendável atribuir código de saída 0 para execução bem-sucedida e usar o resto (1-255) para possíveis erros. Ao atingir o comando de saída, a execução do script do shell será encerrada; portanto, tenha cuidado com a sua colocação.

Dê uma olhada no seguinte script de shell. Aqui, se a condição for atendida, o script será encerrado com o código de saída 0. Se a condição não for atendida, o código de saída será 1.

$ #!/BIN/BASH
$ se [["$ (whoami)" != raiz]]; então
$ echo "Não Usuário Root."
$ saída 1
$ fi
$ eco "usuário root"
$ saída 0

Verifique o resultado da execução deste script sem privilégio sudo ou usuário "root".

$ ./amostra.sh
$ echo $?

Pensamentos finais

Este guia demonstra o que são os códigos de saída e como você pode usá -los. Ele também demonstra como atribuir códigos de saída apropriados em um script bash.

Interessado em scripts de basquete? Uma das maneiras mais fáceis de começar é escrevendo seus próprios scripts. Confira este guia simples sobre como escrever um script simples de bash.

Computação feliz!