Linux シェルで連想マップをネストできますか?
質問する
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配列は1次元のみです。多次元性を偽造するための配列キーを作成できるはずです。たとえば、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 に答える