2012-11-14 50 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