Tratar:
my_command || { echo 'my_command failed' ; exit 1; }
Cuatro cambios:
- Cambiar
&&
a||
- Usar
{ }
en lugar de( )
- Introducir
;
después exit
y
- espacios después
{
y antes}
Como desea imprimir el mensaje y salir solo cuando el comando falla (sale con un valor distinto de cero), no necesita ||
un &&
.
cmd1 && cmd2
se ejecutará cmd2
cuando cmd1
tenga éxito (valor de salida 0
). Donde como
cmd1 || cmd2
se ejecutará cmd2
cuando cmd1
falle (valor de salida distinto de cero).
El uso ( )
hace que el comando dentro de ellos se ejecute en un sub-shell y llamar a exit
desde allí hace que salga del sub-shell y no de su shell original, por lo tanto, la ejecución continúa en su shell original.
Para superar este uso { }
Los dos últimos cambios son requeridos por bash.