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 我并不是说如何对这个特定示例进行操作,而不是使用数组。

希望我已经澄清了自己。

4

2 回答 2

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

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

我不确定这是否是您更大问题的最佳解决方案,但它是您即时请求的直接解决方案。

于 2012-11-14T19:39:50.157 回答
1

更简单的方法:

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

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

扩展为:

echo $var1
echo $var2
echo $var3

输出:

hello1 
hello2 
hello3
于 2012-11-14T19:36:40.353 回答