Bash:在源脚本中停止错误

在要执行的 shell脚本中,我可以使用set -e中止错误.

但是,在源脚本中,如果稍后的命令以错误状态退出,则使用set -e将终止原始shell.

source set_e.sh
./exit_1.sh
# shell dies

一个简单的解决方案是在脚本的末尾设置e,但如果使用的话,这会破坏父级的set -e(如果有人将来包装我的脚本,这可能会很好).

如何在源脚本中获得错误中止功能?

不可能.但是,如果需要,您可以选择使用子shell:
(
    set -e
    source another.sh
)

只有调用脚本的环境永远不会被被调用的脚本改变.

注意:使用换行符分隔两个命令并不使用分号可能很重要.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...