我正在使用许多由 bash 脚本和其他工具构建的系统。通常,我认为使用 -e、-u 和 -o pipefail 选项来捕获错误情况并防止意外行为是一种很好的做法。
但是,一些第三方库(我可以更改其源代码)不这样做,并且不满意使用 -u 更改变量测试。
其中的脚本很可能是来源于未执行的。所以我想做的是在其中的一些中,设置一组更宽松的选项,然后恢复更严格的选项。由于有问题的脚本被许多用户使用,其中一些用户也遇到了同样的问题,我想将此更改放入第三方脚本中,即:
<preserve original options>
set +e +u +o pipefail
#do stuff like
if [ -n "$_UNSET_VAR" ] ; then
cp <some stuff> <some other stuff>
fi
<restore original options (whatever they were)>
我正在寻找保存和恢复这些原件的方法。