Saltar al contenido

Bash: ejecuta el comando2 si el comando1 falla

Si te encuentras con algo que te causa duda puedes dejarnos un comentario y te responderemos rápidamente.

Solución:

Estos deberían hacer lo que necesitas:

cmd1 && cmd2 && echo success || echo epic fail

o

if cmd1 && cmd2; then
    echo success
else
    echo epic fail
fi

El pseudocódigo de la pregunta no corresponde al título de la pregunta.

Si alguien necesita saber cómo ejecutar el comando 2 si falla el comando 1, esta es una explicación simple:

  • cmd1 || cmd2: Esto se ejecutará cmd1y en caso de falla se ejecutará cmd2
  • cmd1 && cmd2: Esto se ejecutará cmd1y en caso de éxito se ejecutará cmd2
  • cmd1 ; cmd2: Esto se ejecutará cmd1y luego se ejecutará cmd2independientemente del fracaso o éxito de la ejecución cmd1.

Petr Uzel da en el clavo, pero también puedes jugar con la magia $?.

ps contiene el código de salida del último comando ejecutado, y si usa esto, puede escribir sus scripts de manera bastante flexible.

Esta pregunta toca un poco este tema, ¿mejores prácticas para usar $? en bash? .

cmd1 
if [ "$?" -eq "0" ]
then
  echo "ok"
else
  echo "Fail"
fi

Luego, también puede reaccionar a diferentes códigos de salida y hacer cosas diferentes si lo desea.

Nos encantaría que puedieras difundir este enunciado si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *