gpt4 book ai didi

bash - 如何在 trap 命令后解除陷阱

转载 作者:行者123 更新时间:2023-11-29 08:44:19 25 4
gpt4 key购买 nike

我有一个错误陷阱如下:

trap failed ERR
function failed {
local r=$?
set +o errtrace
set +o xtrace
echo "###############################################"
echo "ERROR: Failed to execute"
echo "###############################################"
# invokes cleanup
cleanup
exit $r
}

我的代码中有一部分我预计会出现错误:

command1
command2
command3
set +e #deactivates error capture
command4_which_expects_error
set -e #re-activates error capture
command5

总的来说,我需要在 command4_which_expects_error 执行期间忽略陷阱

set +e 似乎没有禁用陷阱。还有其他方法可以“解除陷阱”然后“重新陷阱”吗?

最佳答案

这是您可以在trap 手册中找到的内容:

The KornShell uses an ERR trap that is triggered whenever set -e would cause an exit.

这意味着它不是由 set -e 触发的,而是在相同的条件下执行的。在 ERR 上将 set -e 添加到 trap 将使您的脚本在执行陷阱后退出。

要删除陷阱,请使用:

trap - [signal]

关于bash - 如何在 trap 命令后解除陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31201572/

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