我的脚本有第一条指令:
set -e
因此,无论何时发生错误,脚本都会中止.我想捕获这种情况以显示信息消息,但我不想在脚本退出时显示该消息; 只有当设置-e触发堕胎时.有可能陷入这种情况吗?
这个:
set -e function mytrap { echo "Abnormal termination!" } trap mytrap EXIT error echo "Normal termination"
在任何出口调用(无论是否发生错误),这不是我想要的.
而不是使用trap
on EXIT
,在ERR
事件上使用它:
trap mytrap ERR
完整代码:
set -e function mytrap { echo "Abnormal termination!" } trap mytrap ERR (($#)) && error echo "Normal termination"
现在运行它以生成错误:
bash sete.sh 123 sete.sh: line 9: error: command not found Abnormal termination!
这是正常退出:
bash sete.sh Normal termination