当前位置:  开发笔记 > 编程语言 > 正文

Bash:如何捕获set -e,但不退出

如何解决《Bash:如何捕获set-e,但不退出》经验,为你挑选了1个好方法。

我的脚本有第一条指令:

set -e

因此,无论何时发生错误,脚本都会中止.我想捕获这种情况以显示信息消息,但我不想在脚本退出时显示该消息; 只有当设置-e触发堕胎时.有可能陷入这种情况吗?

这个:

set -e

function mytrap {
    echo "Abnormal termination!"
}

trap mytrap EXIT

error

echo "Normal termination"

在任何出口调用(无论是否发生错误),这不是我想要的.



1> anubhava..:

而不是使用trapon 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


我不知道"ERR"陷阱.很好地解释,@ anubhava!
推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有