是否终止任何命令返回非零值的shell脚本?

我有一个Bash shell脚本,可以调用许多命令。如果任何命令返回的非零值,我都希望shell脚本自动返回1的返回值。

如果不显式检查每个命令的结果,是否有可能?

例如

dosomething1

if [[ $? -ne 0 ]]; then

exit 1

fi

dosomething2

if [[ $? -ne 0 ]]; then

exit 1

fi

回答:

将此添加到脚本的开头:

set -e

如果一个简单的命令以非零退出值退出,这将导致shell立即退出。简单命令是不属于if,while或直到测试的一部分的任何命令,也不是&&或||的一部分的任何命令。清单。

有关更多详细信息,请参见“ set”内部命令上的bash(1)手册页。

我个人几乎以“ set -e”开始几乎所有的shell脚本。当某个脚本在中间出现故障并顽固地破坏了其余脚本的假设时,固执地继续执行脚本确实很烦人。

以上是 是否终止任何命令返回非零值的shell脚本? 的全部内容, 来源链接: utcz.com/qa/402106.html

回到顶部