我有这个脚本:一个数组数组和一个循环。在循环内部,如何打印键(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
答案 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