2010-05-05 281 views
2

我正在嘗試編寫一個shell腳本來爲我自動完成一項工作。但我目前卡住了。 這裏的問題:Shell腳本變量問題

我有一個VAR1變量命名(減少的數量從25到0 並命名 變量$ {VAR1}另一個變量,這相當於一些字符串 然後當我嘗試調用變量$。 {var1}在腳本中的任何地方通過回聲它失敗 我已經嘗試了$ [var $ var1],$ {var $ var}等等,但是每次失敗並給出var1的值或者說操作數預期錯誤 爲你的幫助

回答

1

只有一輪可變擴展,所以你不能直接做。你可以使用eval

eval echo \${var$var1} 

一個更好的解決方案是使用一個數組:像你需要的bash變量間接

i=5 
var[$i]='foo' 
echo ${var[$i]} 
2

它可能會更好,如果你使用一個數組,但你可以使用間接:

var25="some string" 
var1=25 
indirect_var="var$var1" 
echo ${!indirect_var} # echoes "some string"