2010-05-05 195 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"