2011-08-30 196 views
57

是什么

echo $? 

在bash编程呢?

+0

的Unix简而言之就是非常值得选购在我看来出版物。 – wberry

回答

64

这是最后执行的命令的退出状态。

例如命令true总是返回0false状态总是返回1状态:

true 
echo $? # echoes 0 
false 
echo $? # echoes 1 

从手册:(acessible在你的shell调用man bash

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

按照惯例退出状态0表示成功,非零返回状态表示失败。了解更多关于退出状态on wikipedia

有这样的其他特殊变量,你可以在这个在线手册看看:https://www.gnu.org/s/bash/manual/bash.html#Special-Parameters

5

它有一个命令的最后一个状态代码(出口值)。

0

The Bash Manual3.4.2 Special Parameters下:

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

这是一个有点很难找到,因为它并不像$?上市(变量名是“公正” ?)。另请参阅当然;-)

快乐编码的exit status部分。

1

输出最后执行的unix命令

0 implies true 
1 implies false 
4

$的结果呢?返回最后执行的命令的退出值。回声$?在控制台上打印该值。零表示成功执行,而非零值映射到各种失败原因。

因此,当脚本;我倾向于使用下面的语法

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

的比较是要在平等做0或不等于0

4

回声$? - 给人的最近执行的命令的退出状态。这个退出状态将最可能与ZERO暗示成功和任何非零值,指示失败

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

$? - 它给存储在变量“?”中的值。

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

希望这有助于....