在 Linux shell 中,echo $? 应该做什么?

在 Linux shell 中,echo $? 应该做什么?

我遇到了一个echo $?使用 的 shell 脚本。这是什么意思。我们如何在 shell 脚本中使用它。有没有这方面的参考资料。

答案1

echo $?表示前一个命令的状态

参见此处的示例

[root@localhost ~]# jk
-bash:jk:未找到命令
[root@localhost ~]# echo $?
1
[root@localhost ~]# 密码
/根
[root@localhost ~]# echo $?
0
[root@localhost ~]#

第一次你得到 1 是因为命令错误,第二次你得到 0 是因为命令成功

没有调用任何命令jk(就我而言)

答案2

$? 返回 bash(可能还有其他)shell 中最后运行的命令的结果。

http://tldp.org/LDP/abs/html/exit-status.html例 6-1:

/bin/bash #!/bin/bash

回声你好
echo $? # 由于命令执行成功,因此返回退出状态 0。

lskdf # 无法识别的命令。
echo $? # 返回非零退出状态——命令执行失败。

回声

exit 113 # 将返回 113 给 shell。
           # 为了验证这一点,请在脚本终止后输入“echo $?”。

# 按照惯例,“exit 0”表示成功,
#+ 而非零退出值意味着错误或异常情况。
# 参见“具有特殊含义的退出代码”附录。

相关内容