2012-05-09 91 views
0

腳本執行錯誤:殼牌腳本示出,而在Linux的

IMAGE=$imgvalue; 
if [ $imgvalue :=1 ] 
then 
    echo DO=ABC; 
elif [ $imgvalue :=2 ] 
then 
    echo DO=ETC; 
elif [ $imgvalue :=3 ] 
then 
    echo DO=XYZ; 
else 
    echo "$imgvalue is unsupported"; 
    exit 1; 
fi 

以上在腳本中,IMAGE=1IMAGE=2IMAGE=3任何可以是我已分配的值。它只顯示DO=ABC。其他條件不起作用。任何人都可以解釋我的腳本有什麼問題嗎?

+7

非常相似,你最後一個[問題](http://stackoverflow.com/q/10509775/1330481)? – UNECS

+1

只爲我的教育是不是'IMAGE = $ imgvalue'倒退? – UNECS

+0

或者是因爲導出到新的shell而不是命令行shell? – UNECS

回答

0

如果$imgvalue不是一個空字符串,您的第一個測試是語法錯誤,所以我假設它在您正在進行的測試中爲空。在這種情況下,你的第一個測試是等同於:

if [ :=1 ] 

這始終是正確的,因爲:=1不是一個空字符串。你可能想寫:

if [ "$imgvalue" = 1 ]