2012-04-05 118 views
14

可能重複:
What does 「$?」 give us exactly in a shell script?

是什麼$?意味着bash腳本?實施例下面:

#!/bin/bash 
# userlist.sh 

PASSWORD_FILE=/etc/passwd 
n=1   # User number 

for name in $(awk 'BEGIN{FS=":"}{print $1}' < "$PASSWORD_FILE") 

do 
    echo "USER #$n = $name" 
    let "n += 1" 
done 

exit $? 
+1

最近執行的命令的返回值/退出狀態。 – 2012-04-05 16:09:32

+1

對不起,重複。 「$?」很難搜索。 – Meekohi 2012-04-05 19:40:12

回答

17
$? 

是最後誤差(或成功)返回:

$? 
1: command not found. 
echo $? 
127 

false 
echo $? 
1 

true 
echo $? 
0 

到底出口:

exit $? 

是多餘的,因爲bash腳本無論如何將退出該狀態。引用手冊頁:

Bash的退出狀態是在腳本中執行的最後一個命令的退出狀態。

+0

感謝您補充說,退出$?是多餘的。 – trueCamelType 2013-06-18 15:27:24