2012-12-03 32 views

回答

2

是的!

看看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 
1

否時,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]}"