2015-04-30 133 views
-3

我有這個簡單的(甚至是愚蠢的:)問題:在一個bash腳本中,我試圖使用S?將命令的返回碼存儲到變量中,以便稍後使用它在腳本中,但S?字面上存儲爲S? 。
我運行這個測試bash腳本:Bash腳本:將命令的返回碼分配給變量

#!/bin/bash 
echo "trying to store this command's return code. it should be 0" 
rtrn_code=S? 
echo $rtrn_code 

而不是讓0(成功返回代碼),我得到秒,但? :

trying to store this command return code. it should be 0 
S? 

我在做什麼錯?有任何想法嗎?

預先感謝您。

+8

changue S for''''' – klashxx

+2

Gardro,在bash中,所有變量引用都以'$'符號開頭。 '?'只是bash中一個特殊的變量,它保存了前一個命令的返回值。所以爲了(de)引用它所持有的值,你必須在它之前加上'$'符號 - '$?'。 downvotes(而不是我的)只是一個反映,在問這裏之前,你應該用勤奮來找到答案。這是一個基本的bash-101問題 - 你將收到一些... –

回答

1

這是$?而不是S?

rtrn_code=$? 
1

可以使用$?訪問上次執行的命令的返回值。在腳本中將S?替換爲$?