gpt4 book ai didi

bash - 在shell脚本中使用set -e和traps

转载 作者:行者123 更新时间:2023-12-03 08:25:21 37 4
gpt4 key购买 nike

我正在尝试编写一个shell脚本,该脚本本质上在另一个脚本中调用了一堆函数。
该脚本如下所示:

#!/bin/bash
set -e

function cleanup() {
exitStatus=$?
if [ $exitStatus -ne 0 ]; then
rm -rf /tmp/alpha*
fi
exit $exitStatus
}

trap cleanup ERR

VAR1="test"

. /home/common/scripts/utils.sh

echo "Executing function1"
function1 $VAR1

echo "Executing function2"
function2 $VAR1

exit $?

我的问题是,我是否需要设置-e以及trap以确保我的脚本在此处很健壮,或者仅使用trap就足够了。

第二:如果我在此脚本中设置了-e,那么是否也需要在 utils.sh中设置-e,以确保该函数在该脚本中正确执行,或者该脚本中的-e可以解决该问题?

最佳答案

如果出现错误,set -e只会立即退出脚本,而不是继续。是否使用它取决于您想要的行为。
trap只是处理退出时的错误,因此,如果您担心健壮性,则将两者结合起来可能很好。

如果您还希望它们在出错时立即终止,则应在每个子脚本中放置set -e

关于bash - 在shell脚本中使用set -e和traps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43483706/

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