我有一个bashshell脚本,可以调用许多命令
如果任何命令返回非零值,我希望shell脚本自动退出,返回值为1
在不显式检查每个命令的结果的情况下,这是可能的吗
比如说,
dosomething1
如果[$?-ne 0]];然后
出口1
fi
dosomething2
如果[$?-ne 0]];然后
出口1
fi
将以下内容添加到脚本的开头:
set-e
如果简单命令以非零的退出值退出,这将导致shell立即退出。简单命令是不属于if、while或until测试的任何命令,或&&;或| |列表
有关更多详细信息,请参阅“set”内部命令上的bash(1)手册页
我个人用“set-e”开始几乎所有的shell脚本。当一个脚本在中间出现故障并且破坏脚本其余部分的假设时,脚本会顽固地继续下去。