Bru*_*ger 31
Cjm 的答案是正确的,但$?可以在 shell 脚本中以愚蠢的方式使用,我想对此提出警告。许多糟糕的 shell 脚本都有重复的代码模式:
run_some_command
EXIT_STATUS=$?
if [ "$EXIT_STATUS" -eq "0" ]
then
# Do work when command exists on success
else
# Do work for when command has a failure exit
fi
Run Code Online (Sandbox Code Playgroud)
如果可能的话(有时会出现可读性问题),您应该对这种情况进行不同的编码:
if run_some_command
then
# Do work when command exists on success
else
# Do failure exit work
fi
Run Code Online (Sandbox Code Playgroud)
后一种用法更快,不会用相当于临时变量的东西污染 shell 的变量命名空间,通常对人类更具可读性,并鼓励使用“正逻辑”,即编写没有否定条件的条件的做法,具有认知大多数情况下的简单性。它取消$?了大部分的使用。