2012-11-14 45 views
0

我有一个bash循环,我想读的所有变量:猛砸字符串连接和获取内容

var1="hello1" 

var2="hello2" 

var3="hello3" 

for i in `seq 1 3`; 
do 
ab=var$i 
# Now ab == var1, I want to echo $var1 

done 

我试图动态获取VAR(1)(2)(3)走出它的字符串。

编辑:

这里的关键是如何串联变量,如ab=var$i 并使用ab变量(var1例如)作为变量,我的意思是让var1hello1 我没有意味着如何去做这个具体的例子,而不是数组。

希望我已经澄清了我自己。

+2

http://wiki.bash-hackers.org/syntax/arrays – Mat

+0

@ork编辑后编辑了我的答案,可以用括号扩展完成。 –

回答

4
var1="hello1" 
var2="hello2" 
var3="hello3" 

for i in `seq 1 3`; 
do 
    ab=var$i 
    echo ${!ab} 
done 

我不知道这是最好的解决办法你的 更大的问题,但这是直接解决您的直接请求。

+0

这正是我的意思,非常感谢! – ork

1

更简单的方法:

var1="hello1" 
var2="hello2" 
var3="hello3" 

eval echo\ $var{1..3}\; 

被扩展为:

echo $var1 
echo $var2 
echo $var3 

输出继电器:

hello1 
hello2 
hello3