shell如何临时关闭错误退出
在 Shell 脚本(特别是在 Bash 中)中,**set +e 的作用就是关闭“遇到错误立即退出”的机制**。
set -e 与 set +e 的区别
set -e(开启错误检查):
告诉 Shell,如果脚本中任何一个命令执行失败(即返回了一个非零的退出状态码 exit status【非0】),脚本应该立即停止执行并退出。这就像开启了“严格模式”,常用于确保脚本的安全性,防止前面的步骤报错了,后面的步骤还在盲目执行。set +e(关闭错误检查):
告诉 Shell,即使某个命令执行失败,也不要理会它,继续执行接下来的每一行代码。
常见应用场景:全局严格,局部放行
在实际编写脚本时,我们经常会在脚本中灵活地切换这两个设置。比如,你希望脚本整体非常严格,但允许某一段特定的代码“犯错”:
1 |
|
更好的替代方案
如果你开启了 set -e,但只是想让某一个命令即使失败也不触发脚本退出,频繁写 set +e 和 set -e 会让代码显得有点臃肿。
你可以使用逻辑或操作符 || true 来优雅地解决:
1 | set -e |