Neste guia, verifique como verificar o código de saída do bash do último comando e alguns usos possíveis dele.
Código de saída Bash
Cada comando UNIX / Linux executado pelo script de shell ou usuário 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), significa um erro.
Existem muitos usos potenciais do código de saída do bash. O mais óbvio é, claro, verificar se o último comando foi executado corretamente, especialmente se o comando não gerar nenhuma saída.
No caso do bash, o código de saída do comando anterior pode ser acessado usando a variável shell “$?”.
Verificando o código de saída do Bash
Inicie um terminal e execute qualquer comando.
$ dataVerifique o valor da variável shell “$?”Para o código de saída.
$ echo $?
Como o comando “date” 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.
$ abcdVerifique 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:
amostra de $ cat.txt | grep “moeda”
Ao trabalhar com um comando que possui um ou mais tubos, o código de saída será do último código executado no tubo. Neste 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.
amostra de $ cat.txt | grep “abcd”$ echo $?
Incorporando Código de Saída em Scripts
O código de saída também pode ser usado para scripts. Uma maneira simples de usá-lo é atribuí-lo a uma variável de shell e trabalhar com ele. Aqui está um exemplo de script de shell que usa o código de saída como uma condição para imprimir uma saída específica.
$ #!/ bin / bash$ echo "olá mundo"
$ status = $?
$ [$ status -eq 0] && echo "comando bem-sucedido" || echo "comando sem sucesso"
Ao ser executado, o script irá 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" || echo "comando sem sucesso"
Ao ser executado, a saída será diferente.
Explicação do valor do 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 é única para o programa / script. Por exemplo, “ls” e “grep” têm diferentes explicações para os códigos 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 depuração mais fácil. Em scripts bash, é o comando “exit” seguido pelo valor do código de saída.
$ exitDe acordo com a convenção, é recomendado atribuir o código de saída 0 para uma execução bem-sucedida e usar o restante (1-255) para possíveis erros. Ao atingir o comando de saída, a execução do shell script será encerrada, portanto, tome cuidado com 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$ if [["$ (whoami)" != root]]; então
$ echo "Não usuário root."
$ saída 1
$ fi
$ echo "usuário root"
$ exit 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. Também demonstra como atribuir códigos de saída apropriados em um script bash.
Interessado em script bash? Uma das maneiras mais fáceis de começar é escrevendo seus próprios scripts. Confira este guia simples sobre como escrever um script bash simples.
Computação feliz!