什么

echo $?

是指shell编程吗?


当前回答

从http://www.gnu.org/s/bash/manual/bash.html特殊参数

?
Expands to the exit status of the most recently executed foreground pipeline. 

其他回答

参见3.4.2特殊参数中的Bash手册:

? —展开到最近执行的前台管道的退出状态。

有点难找,因为它没有列在$?(变量名是“just”?)当然,还可以查看退出状态部分;-)

快乐的编码。

从http://www.gnu.org/s/bash/manual/bash.html特殊参数

?
Expands to the exit status of the most recently executed foreground pipeline. 

echo $ ?-给出最近执行的命令的EXIT STATUS。这个EXIT STATUS很可能是一个数字,其中0表示成功,任何非0值表示失败

吗?-这是bash中的一个特殊参数/变量。

$ ?-它给出存储在变量"?"中的值。

BASH中一些类似的特殊参数有1、2、*、#(通常在echo命令中可以看到$1、$2、$*、$#等)。

$ ?返回最后执行命令的退出值。echo $ ?在控制台打印该值。0表示执行成功,而非0值则映射为失败的各种原因。

因此当编写脚本时;我倾向于使用以下语法

if [ $? -eq 0 ]; then
 # do something
else
 # do something else
fi

比较是在等于0或不等于0时进行的。

**基于注释的更新:理想情况下,你不应该使用上面的代码块进行比较,参考@tripleee注释和解释。

它是命令的最后一个状态码(退出值)。