如何使用bash脚本在数组数组中打印键和值

时间:2015-04-17 14:52:55

标签: bash

我有这个脚本:一个数组数组和一个循环。在循环内部,如何打印键(foo)和值(bar)???

#!/bin/bash
declare -A combo=()
combo+=(['foo']='bar')
combo+=(['hello']='world')
for window in ${combo[@]};
do
    echo ???
    echo ???
done
exit

预期产出:

key: foo   value: bar
key: hello value:world

我会尽快读到这个bash manual

1 个答案:

答案 0 :(得分:4)

您的脚本几乎正确无误。正如v.coder的回答一样。

在使用字符串键向其追加项目之前,您需要将数组声明为关联数组。

declare -A combo

然后你需要迭代数组的键(${!combo[@]}")而不是值(${combo[@]}")。

然后v.coder的其余部分的答案就可以了。

#!/bin/bash
declare -A combo
combo+=(['foo']='bar')
combo+=(['hello']='world')
for window in "${!combo[@]}"
do
    echo "${window}" # foo
    echo "${combo[${window}]}" # bar
done