Tratar:
my_command || { echo 'my_command failed' ; exit 1; }
Cuatro cambios:
- Cambiar
&&a||
- Usar
{ }en lugar de( )
- Introducir
;después exity
- 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á cmd2cuando cmd1tenga éxito (valor de salida 0). Donde como
cmd1 || cmd2
se ejecutará cmd2cuando cmd1falle (valor de salida distinto de cero).
El uso ( )hace que el comando dentro de ellos se ejecute en un sub-shell y llamar a exitdesde 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.