[ $? 的含义-ne'0']。 (外壳脚本)

[ $? 的含义-ne'0']。 (外壳脚本)

谁能告诉我下面的命令是什么意思?我正在阅读 shell 脚本并研究它的作用。但在脚本的最后,出现了以下命令。我不知道这意味着什么。

if [ $? -ne '0' ]; then 
  exit 1
fi 

exit 0

答案1

$?是 shell 等待的最后一个命令的退出状态(一个字符串,但表示一个整数),也就是说,没有用标记放入后台&

传统上,零退出状态意味着“成功”,这对于不同的程序来说是不同的。cat几乎在任何情况下都以零状态退出,grep如果找到匹配则以零状态退出。

因此,无论您的脚本最后运行什么命令,脚本都会检查退出状态。对于不等于 0 的状态,脚本将以 1 状态退出。否则它的存在状态为零。

从编辑角度来说,这段代码并不是真正必要的。运行脚本的 shell 将退出并显示其调用的最后一个命令的退出状态。不同的退出状态有时意味着不同的事情,因此 1 退出状态可能很重要,但通常为零表示成功,非零表示失败主要是必要的,这将来自以状态退出的命令$?

相关内容