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

时间:2017-04-18 23:14:07

标签: bash shell error-handling

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

utils.sh

我的问题是,我是否需要设置-e以及陷阱以确保我的脚本在这里是健壮的,或者只是使用陷阱就足够了。

第二:如果我在这个脚本中设置-e,那么我是否需要在class Myclass(): def __init__ (self, parameter=None) if parameter is None: self.parameter = 1.0 else: self.parameter = parameter 中设置-e以确保该函数在该脚本中正确执行或者在此脚本中设置-e会照顾好吗?

1 个答案:

答案 0 :(得分:1)

如果出现错误,

set -e会立即退出脚本,而不是继续。是否使用它取决于你想要的行为。

trap只是在退出时处理错误,所以如果您关注稳健性,那么两者的结合可能是好的。

如果您希望它们在出错时立即终止,您应该在每个子脚本中添加set -e