Experimentar:
my_command || { echo 'my_command failed' ; exit 1; }
Quatro mudanças:
- Mude
&¶||
- Use
{ }no lugar de( )
- Introduzir
;depois exite
- espaços
{antes e antes}
Como você deseja imprimir a mensagem e sair somente quando o comando falhar (sai com um valor diferente de zero), você ||não precisa de um &&.
cmd1 && cmd2
será executado cmd2quando cmd1for bem-sucedido (valor de saída 0). Enquanto que
cmd1 || cmd2
será executado cmd2quando cmd1falhar (valor de saída diferente de zero).
Usar ( )faz com que o comando dentro deles seja executado em um sub shell e chamar um exitde lá faz com que você saia do sub shell e não do shell original; portanto, a execução continua no shell original.
Para superar esse uso { }
As duas últimas alterações são exigidas pelo bash.