【发布时间】:2016-06-03 06:09:17
【问题描述】:
我需要在 bash 中迭代几个键值数组(关联数组)。这是我的最后一次尝试:
declare -A ARR1
ARR1[foo]=bar
declare -A ARR2
ARR2[foo]=baz
arrays=(ARR1 ARR2)
for idx in "${arrays[@]}"; do
echo ${${idx}[foo]};
done
这当然是错误的(语法错误),但此时我没有其他想法如何处理它。而在下面的示例中没有错误,但输出只是一个数组的名称。
for idx in "${array[@]}"; do
echo "${idx[foo]}";
done
------- OUTPUT -------
ARR1
ARR2
编辑
好的,我可以通过使用eval:
eval echo \${${idx}[foo]};
但是,我读到在 bash 脚本中使用 eval 并不是一个好主意。有没有更好的办法?
【问题讨论】:
标签: arrays bash associative-array