Você deve usar
[[ statement ]] || { echo problem found ; exit 1; }
A diferença é que a sintaxe de chave não cria um subshell, o que significa que o exit 1
se aplica ao shell atual. Se você usar (exit 1)
, o subshell será encerrado, mas o shell atual continuará em execução.