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ácmd1
y en caso de falla se ejecutarácmd2
cmd1 && cmd2
: Esto se ejecutarácmd1
y en caso de éxito se ejecutarácmd2
cmd1 ; cmd2
: Esto se ejecutarácmd1
y luego se ejecutarácmd2
independientemente del fracaso o éxito de la ejecucióncmd1
.
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.