En Bash, si un comando falla, ejecute otros comandos

En Bash, si un comando falla, ejecute otros comandos
¿Sabía que cada comando que ejecuta en Linux tiene un código de salida?? Esto es cierto incluso si un comando termina con un error. Los valores de salida son valores enteros que varían de 0 a 255. Un valor distinto de cero, yo.mi., un valor superior a 0, indica que el comando sale con un error.

Si un comando se ejecuta correctamente en Bash, tiene un código de salida 0. Para el comando que no se encuentra, el código de salida es 127. Por lo tanto, podemos usar el código de salida para realizar una acción específica.

Este tutorial le dará algunos consejos y trucos que puede usar para realizar una acción basada en el código de salida del comando anterior.

Usando el operador OR

Una forma de ejecutar un comando si el comando anterior falla es usar el operador o. Dado que un operador OR requiere que solo una condición sea verdadera, podemos ejecutar la siguiente sintaxis:

$ Command1 || commad2

En la sintaxis anterior, el segundo comando se ejecutará incluso si el primer comando falla. Tenga en cuenta que esto es diferente de usar && operador, ya que requiere el primer comando para ejecutar con éxito.

Por ejemplo:

$ ping -c lhint || echo "éxito";

En el ejemplo anterior, Echo seguirá ejecutado a pesar del error causado por la resolución de nombre en el comando ping.

Aquí hay una captura de pantalla que ilustra esto:

NOTA: Puede vincular múltiples comandos utilizando operadores BASH para lograr el mejor resultado. Por ejemplo, puede permitir que el sueño se ejecute solo si Ping y Echo se ejecutan con éxito.

$ ping -c 1 linuxhint.com && echo "éxito" || dormir 100;

En el ejemplo anterior, si falla ping o eco, el sueño no se ejecuta.

Hacer esto puede ser útil si el siguiente comando se basa en la salida del comando anterior.

Usando el código de salida

Bash nos permite obtener el código de salida del comando ejecutado previamente. Para ver el código de salida, ingrese el comando:

$ Echo $?

Obtenemos 0 para un comando ejecutado correctamente y 127 para un comando que no se encuentra en el ejemplo anterior.

Para usar el código de salida para una acción, lo hacemos:

#!/bin/bash
Si [[$? -eq 0]];
entonces
Echo "éxito"
demás:
Echo "Fail"
FI

En el script anterior, verificamos si el código de salida es igual a 0, lo que indica el comando ejecutado correctamente. Si es verdadero, ejecute un comando. En este caso, Echo "éxito."De lo contrario, echo" fallar."

Conclusión

En este tutorial rápido, utilizamos operadores bash y códigos de salida para ejecutar un comando si el comando anterior falla o tiene éxito.