2014-06-27 43 views
0

說我有一個循環:如何在導出新變量時組合變量名稱?

for z in {0..11} 
do 
export jbod$z=`grep "Firmware state" driveinfo-$z | awk 'BEGIN{FS=":";} {print $2}'` 
done 

我怎樣才能獲得新的變量我試圖出口到包括來自循環多少? 對於環我想每次通過像這樣的變量:jbod1 =字符串jbod2 =串jbod3 =串

我還要提到,如果我回聲$ JBOD $ž它不工作...

謝謝!

回答

1

您設置變量的代碼已經有效。你只是錯誤地讀取了這個值。

嘗試echo $jbod4然後您會看到它們已設置。

動態訪問的變量,你可以使用間接:

z=4 
name="jbod$z" 
echo "$name is set to ${!name}" 
+0

它不應該工作,他需要的eval或聲明爲@anubhava指出。試試這個:'爲我在{1..3};做一個$ i = $ i;完成;回聲「$ a1 $ a2 $ a3」' – Tiago

+0

你應該得到:'a1 = 1:命令未找到' – Tiago

+0

@Tiago這不是OP所做的。 OP使用導出,'export $ i = $ i'工作正常。 –