我有一个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脚本。当某个脚本在中间出现故障并顽固地破坏了其余脚本的假设时,固执地继续执行脚本确实很烦人。