Answers:
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
如果有可能(有时会引起可读性问题),您应该以不同的方式编写这种情况的代码:
if run_some_command
then
# Do work when command exists on success
else
# Do failure exit work
fi
后者的使用速度更快,不会将外壳变量的名称空间污染到临时变量,对人类而言通常更易读,并鼓励使用“正逻辑”,即写无条件的条件式的做法,具有认知在大多数情况下都很简单。它$?
在很大程度上消除了对的使用。
$?
-最后执行的命令的退出状态。
$0
-当前脚本的文件名。
$#
-提供给脚本的参数数量。
$$
-当前外壳的进程号。对于Shell脚本,这是它们执行时的进程ID。