Linux 导出新变量时如何组合变量名?
假设我有一个for循环:Linux 导出新变量时如何组合变量名?,linux,bash,shell,scripting,Linux,Bash,Shell,Scripting,假设我有一个for循环: for z in {0..11} do export jbod$z=`grep "Firmware state" driveinfo-$z | awk 'BEGIN{FS=":";} {print $2}'` done 如何获取要导出的新变量以包含循环中的数字? 对于循环的每个过程,我需要一个如下的变量:jbod1=string jbod2=string jbod3=string 我还应该提到,如果我回显$jbod$z,它就不起作用了 谢谢 用于设置变量的代码已经生效
for z in {0..11}
do
export jbod$z=`grep "Firmware state" driveinfo-$z | awk 'BEGIN{FS=":";} {print $2}'`
done
如何获取要导出的新变量以包含循环中的数字?
对于循环的每个过程,我需要一个如下的变量:jbod1=string jbod2=string jbod3=string
我还应该提到,如果我回显$jbod$z,它就不起作用了
谢谢 用于设置变量的代码已经生效。您只是读取的值不正确 尝试echo$jbod4,您将看到它们已经设置好了 要动态访问变量,可以使用间接寻址:
z=4
name="jbod$z"
echo "$name is set to ${!name}"
它不应该起作用,他需要评估或声明,正如@anubhava所指出的那样。试试这个:{1..3}中的i的
;做一个$i=$i;完成;echo“$a1$a2$a3”
@Tiago OP不是这样做的。OP使用导出,export a$i=$i
工作正常。不知道导出会工作。感谢+1:)