Ao escrever um script ou executar um comando, faz sentido saber se foi bem -sucedido. No Linux, quando um comando é executado, temos um código de saída que confirma se o comando executado foi bem -sucedido. Ao executar um comando que se baseia na saída do outro comando, você deve buscar o código de saída do primeiro comando para determinar se o outro comando será executado. Este guia se concentra em duas maneiras de verificar se um comando foi bem -sucedido em Bash.
Duas maneiras de verificar se um comando foi bem -sucedido em Bash
Quando você executa um comando em bash, ele deve retornar um código ou status de saída. Você pode usar a instrução "se" para avaliar o valor retornado de um determinado comando ou usar a variável especial ($?) para verificar o código de saída ou status do comando executado. Vamos entrar em detalhes.
1. Usando a declaração Bash se
Com a declaração "se", Você pode avaliar o valor de retorno de um comando que é executado em uma expressão. A declaração "se" busca o status de saída. Dependendo da sua expressão, ele executa o comando conseqüente na declaração condicional if-else.
Por exemplo, podemos criar um script que exclua qualquer arquivo de texto no diretório atual e retorne uma mensagem de sucesso se o comando executar ou uma mensagem de falha se o comando não for bem -sucedido.
Faça o script executável usando o comando chmod. Então, execute -o.
Observe que nosso comando não é bem -sucedido, exibindo a mensagem com falha. No entanto, se o comando for bem -sucedido, obtemos uma saída diferente.
Você pode usar o mesmo conceito ao executar qualquer comando em bash, de modo que, se um determinado comando não for bem -sucedido, ele exibe uma determinada saída para confirmar que o próximo comando não será executado, já que o primeiro comando já falhou.
2. Usando a variável especial ($?)
A variável especial ($?) retorna o código de saída do último comando executado. Quando retorna o código de saída como zero, implica que o comando foi bem -sucedido. No entanto, qualquer outro número significa que seu comando não teve sucesso.
Usando a variável especial para verificar se um comando foi bem -sucedido exige com sucesso que você use um operador de comparação binária (EQ) para ver se o código de saída é zero. Caso contrário, ele executa a parte da declaração condicional if-else.
Execute o comando em seu script. Em seguida, adicione uma declaração condicional de if-else para verificar se seu comando foi executado. Vamos editar nosso exemplo anterior para usar a variável especial da seguinte maneira:
Se executarmos o script, ele retornará uma saída que confirma que não teve sucesso, pois não há arquivos de texto para excluir. Portanto, ele executa o comando na parte else em vez do "se".
Suponha que tenhamos arquivos de texto no diretório atual. Poderíamos obter uma saída diferente. Aqui, recebemos a mensagem de sucesso, o que significa que o código de saída correspondeu à seção "se" quando foi bem -sucedido.
No caso anterior, o comando foi bem -sucedido. Podemos verificá -lo com base na mensagem de saída que ele exibe, confirmando que o código de saída para o comando é zero.
Conclusão
Existem duas maneiras comuns de verificar se seu comando foi bem -sucedido em Bash. Você pode usar a instrução condicional if-else para exibir uma saída, dependendo de um comando ter sucesso. Como alternativa, você pode usar a variável especial ($?) para verificar o código de saída ou status do comando executado usando a instrução if-else.