Aqui, mostra-se o uso de ||e &&em uma única linha para concatenar a execução de comandos: Como posso verificar se há erros do apt-get em um script bash?
Estou tentando parar a execução de um script se uma determinada condição falhar,
por exemplo
false || echo "Obvious error because its false on left" && exit
Aqui ele imprime Obvious error because its false on the lefte sai do console, o que eu queria.
true || echo "This shouldn't print" && exit
Aqui, não há echo print, mas o exitcomando também é executado, ou seja, o console está fechado, o exitcomando não deve ser executado porque o comando echo à direita não foi executado? Ou, por padrão, é uma declaração considerada falsa no lado esquerdo de um &&operador?
Edit: Eu deveria ter mencionado isso antes, meu objetivo era repetir o erro e sair se não estivesse claro. Para o meu caso específico de detectar erros ao agrupar condições usando && e ||, a resposta @ bodhi.zazen resolve o problema.
A resposta @takatakatek torna mais claro o controle de fluxo e os links do guia do bash são excelentes
A resposta do @muru tem uma boa explicação de por que não usar set -e, se você deseja que mensagens de erro personalizadas sejam exibidas com alternativas de uso de perl e trap, que eu acho que é uma maneira mais robusta e me vejo usando-a a partir do meu segundo script do bash!