我可以在 Linux Shell 中嵌套关联映射吗?
问问题
1652 次
2 回答
4
是的!
看看man bash
吧!
(搜索关联)
但是如果你想将数组分配给数组,你必须为自己声明子对象,使用他自己的处理程序,而不是你可以将此处理程序作为字符串分配给上层数组:
declare -A x
declare -A x_foo
x_foo=([a]=1 [b]=3)
x['foo']=x_foo;
所以
echo ${!x[@]}
foo
echo ${x[foo]}
x_foo
eval echo \${${x[foo]}[a]}
1
eval echo \${${x[foo]}[b]}
3
eval echo \${!${x[foo]}[@]}
a b
eval echo \${${x[foo]}[@]}
1 3
于 2012-12-03T17:15:30.973 回答
3
不,bash 数组只是一维的。你应该能够构造你的数组键来伪造多维。例如,如果您想要 JSON 对象
x = {'foo': {'a': 1, 'b': 2}, 'bar': {'c': 3, 'd', 4}}
在 bash 中,您必须执行类似的操作
declare -A x
x[foo,a]=1
x[foo,b]=2
x[bar,c]=3
x[bar,d]=4
并参考,例如
i=foo
j=b
echo "${x[$i,$j]}"
于 2012-12-03T17:39:56.133 回答