2011-08-30 60 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,$ *,$#等)。

希望這有助於....