2014-06-27 41 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'工作正常。 –