gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 09:00:22 24 4
gpt4 key购买 nike

我的脚本有第一条指令:

set -e

这样一来,每当发生错误时,脚本就会中止。我想捕获这种情况以显示一条信息消息,但我不想在脚本退出时显示该消息;仅当 set -e 触发流产时。有没有可能陷入这种情况?

这个:

set -e

function mytrap {
echo "Abnormal termination!"
}

trap mytrap EXIT

error

echo "Normal termination"

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

最佳答案

不要在 EXIT 上使用 trap,而是在 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

关于Bash:如何捕获 set -e,但不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41619759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com