【发布时间】:2012-10-29 15:12:45
【问题描述】:
我有一个关联数组的变量列表,我想遍历并检索它们的键/值对。
我通过列出其所有键并获取值来遍历单个关联数组,即。
for key in "${!queue1[@]}" do
echo "key : $key"
echo "value : ${queue1[$key]}"
done
棘手的部分是关联数组的名称是可变变量,例如给定计数 = 5,关联数组将命名为 queue1、queue2、queue3、queue4、queue5。
我正在尝试根据计数替换上面的序列,但到目前为止,括号和 eval 的每个组合并没有产生比错误替换错误更多的错误。例如下面:
for count in {1,2,3,4,5} do
for key in "${!queue${count}[@]}" do
echo "key : $key"
echo "value : ${queue${count}[$key]}"
done
done
非常感谢您的帮助!
【问题讨论】:
-
在 bash 4.3(及更高版本)支持 namevar 的情况下,现有答案在很大程度上已经过时了。
标签: linux bash unix associative-array