set -euo pipefail
在 Bash 脚本里,set -euo pipefail
是一个相当实用的组合命令,其作用是增强脚本的健壮性,让错误能够被更及时地发现。下面是对其中各选项的详细解析:
-e
(errexit)
一旦某个命令以非零状态退出(也就是执行失败),脚本会立刻终止运行。要是没有这个选项,即便部分命令执行失败,脚本也会继续往下运行,这可能会让问题变得更加复杂。
-u
(nounset)
当脚本尝试使用未定义的变量时,就会触发错误,脚本会停止执行。这有助于避免因变量拼写错误或者变量未被正确初始化而引发的问题。
-o pipefail
该选项会让管道命令的返回状态取决于整个管道中最后一个执行失败的命令,而不是仅仅由最后一个命令的执行结果决定。这样一来,即便是管道中间的命令执行失败,也能被及时捕获到。
使用示例
复制代码
禁用选项
复制代码
版权声明: 本文为 InfoQ 作者【Joseph295】的原创文章。
原文链接:【http://xie.infoq.cn/article/5b2558570b24e9a838df7e6ab】。文章转载请联系作者。
评论