Em Bash, se um comando falhar, execute outros comandos

Em Bash, se um comando falhar, execute outros comandos
Você sabia que todo comando que você executa no Linux tem um código de saída? Isso é verdade mesmo que um comando termine com um erro. Os valores de saída são valores inteiros que variam de 0 a 255. Um valor diferente de zero, eu.e., Um valor maior que 0, indica que o comando sai com um erro.

Se um comando for executado com sucesso no Bash, ele terá um código de saída 0. Para o comando não encontrado, o código de saída é 127. Portanto, podemos usar o código de saída para executar uma ação específica.

Este tutorial fornecerá algumas dicas e truques que você pode usar para executar uma ação com base no código de saída do comando anterior.

Usando o operador ou

Uma maneira de executar um comando se o comando anterior falhar é usar o operador ou o operador. Como um operador ou requer apenas uma condição para ser verdadeira, podemos executar a seguinte sintaxe:

$ comando1 || Commad2

Na sintaxe acima, o segundo comando será executado, mesmo que o primeiro comando falhe. Observe que isso é diferente de usar o operador &&, pois exige que o primeiro comando seja executado com sucesso.

Por exemplo:

$ ping -c lhint || eco "sucesso";

No exemplo acima, o Echo ainda será executado, apesar do erro causado pela resolução de nomes no comando ping.

Aqui está uma captura de tela ilustrando isto:

OBSERVAÇÃO: Você pode amarrar vários comandos usando operadores de bash para alcançar o melhor resultado. Por exemplo, você pode permitir que o sono seja executado apenas se o ping e o eco executar com sucesso.

$ ping -c 1 linuxhint.com && echo "sucessor" || sono 100;

No exemplo acima, se o ping ou o eco falhar, o sono não executa.

Fazer isso pode ser útil se o comando a seguir se deparar com a saída do comando anterior.

Usando o código de saída

Bash nos permite obter o código de saída do comando executado anteriormente. Para visualizar o código de saída, digite o comando:

$ echo $?

Recebemos 0 para um comando executado corretamente e 127 para um comando não encontrado no exemplo acima.

Para usar o código de saída para uma ação, fazemos:

#!/BIN/BASH
Se [[$? -eq 0]];
então
eco "sucesso"
outro:
eco "falha"
fi

No script acima, verificamos se o código de saída é igual a 0, indicando o comando executado com sucesso. Se for verdade, execute um comando. Nesse caso, eco “sucesso."Caso contrário, echo" falha.”

Conclusão

Neste tutorial rápido, usamos operadores de bash e códigos de saída para executar um comando se o comando anterior falhar ou for bem -sucedido.