2017-07-24 45 views
0

我想要命令:echo "$string4"在循環過程中返回我的文件開頭定義的SETFIELDS_X_XX變量的值。但是,它只返回我名稱SETFIELDS_X_XX。我究竟做錯了什麼?在Bash中傳遞變量兩次

SETFIELDS_2_25=225 
SETFIELDS_2_200=2200 
SETFIELDS_2_500=2500 
SETFIELDS_10_25=1025 
SETFIELDS_10_200=10200 
SETFIELDS_10_500=10500 
SETFIELDS_10_1000=101000 
SETFIELDS_50_25=5025 
SETFIELDS_50_200=50200 
SETFIELDS_50_500=50500 
SETFIELDS_50_1000=501000 

for LBUB in 2 10 50 
do 
    for generations in 25 200 500 1000 
    do 
     string1="SETFIELDS_" 
     string2="$LBUB" 
     string3="_$generations" 
     string4=$string1$string2$string3 
    #echo "LBUB = $LBUB" 
    #echo "generations = $generations" 
    echo "$string4" 
    done 
done 

回答

1

使用這個代替:

echo ${!string4} 

這將打印存儲在變量SETFIELDS_X_XX

+0

隨着這裏面的價值,我得到了一個錯誤:壞替代 –

+0

刪除從字符串1的變量賦值報價,2和3,然後嘗試。 –

+2

引號不會導致此錯誤。 OP確定他在使用'bash'嗎? – chepner