使用“动态创建”变量(名称)操作时出现问题
BZ="b01 b02 b03"
[user:~]$ for i in $BZ; do echo $i ; declare status_$i=foobar_"$i" ; echo wrong: $status_$i;done
输出:
b01
wrong: b01
b02
wrong: b02
b03
wrong: b03
[user:~]$ echo $status_b01 $status_b02
输出正常:
foobar_b01 foobar_b02
变量存在。内容还可以。如何在不使用explicite名称$status_b03的情况下获取值?我喜欢使用$status\I(变量的动态创建名称)。
最好的
马克
最佳答案
必须使用具有要取消引用的变量名的变量:
BZ="b01 b02 b03"
for i in $BZ
do
echo "$i"
declare status_$i=foobar_"$i"
vname=status_$i
echo "${!vname}"
done
输出:
b01
foobar_b01
b02
foobar_b02
b03
foobar_b03
关于linux - bash:如何在for循环中访问“动态声明的变量”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52162227/