2015-06-25 139 views
2

我正在尋找使用for循環使用基本相同的代碼分配幾個變量。Bash:分配給一個變量使用另一個變量+文本

#!bin/bash 
for ((i=1; i<=4; i++)); do 
    case ${i} in 
     1) filling=apple; a=an ;; 
     2) filling=peach; a=a ;; 
     3) filling=pecan; a=a ;; 
     4) filling=cherry; a=a ;; 
    esac 
    echo "Would you like ${a} ${filling} pie? Y/N" 
    read var1 
    case ${var1} in 
     Y|y) ${filling}_pie="True" ;; 
     N|n) ${filling}_pie="No" ;; 
    esac 
done 

此腳本完全按照預期工作,除非在最後分配變量。我得到apple_pie=True: command not found。我也試過Y|y) ${${filling}}_pie="True" ;,但是當我這樣做時,我得到bash: ${${filling}}_pie="True": bad substitution

我的外殼不喜歡餡餅,或者我做錯了什麼,但我似乎無法找到任何其他人的一個實例,或者至少我不能以任何人的實例來描述它,當我在Google上搜索時試圖描述它...

有沒有辦法在賦值中使用變量時分配變量?

+2

你基本上要一個動態的名稱爲您的變量(獲得幫助[這裏](http://stackoverflow.com/questions/16553089/bash-動態可變名)) –

回答

相關問題