Com a ajuda de Bash captura qualquer erro como -e mas não sai, faz outra coisa Eu encontrei uma maneira de mostrar a mensagem de erro antes de terminar o script.
Pode-se usar trap
para garantir que o código especificado seja executado ao encontrar o erro, o que acontece imediatamente antes da opção -e
finalizar o script. Por exemplo
set -e
err_report() {
echo "Error on line $1"
}
trap 'err_report $LINENO' ERR
echox
echo "x"
resultará em
test.sh: line 9: echox: command not found
Error on line 9