2014-01-14 19 views
0

我在想,如果我們能節省兩個值,例如,姓名和電話號碼,在同一陣列成員,例如,我有寫下面的代碼來做到這一點:在shell腳本數組分配兩個值

`array[$count]={$x , 1}` 

其中$x containe一個字符串,但是當我要打印array[$count]具有值:

`echo "$count - $x1 - ${array[$count]} \n"` 

它僅僅給出的第一個值是$x

回答

1

bash中沒有多維數組,但你可以僞造它使用關聯數組:

$ declare -A array 
$ count=5 
$ array[$count,name]="foobar" 
$ array[$count,value]=1 
$ for idx in "${!array[@]}"; do printf "%s\t%s\n" "$idx" "${array[$idx]}"; done 
5,value 1 
5,name foobar 

這需要bash的版本4

+0

做關聯數組類似於Perl中哈希? 和另一個問題,我可以改變'價值',因爲它不應該是一個固定值? – user3137879

+0

是的,關聯數組就像一個哈希。但它只能將字符串存儲爲值。你不想在數組索引中改變單詞「value」,你想改變實際值(我有「1」)。 –

+0

好的「價值」,換句話說,將會分配什麼? – user3137879