2016-11-24 45 views
2

二維陣列單元的我嘗試以下二維數組在bash設置:覆蓋在bash

$ a[0,0]=a0 
$ a[1,0]=a1 
$ echo ${a[0,0]} 
a1 

我期望得到a0,什麼我米失蹤?

+1

我不是100%,但我相信你可以模擬二維數組認爲'0,0'和'1,0'是在一個算術上下文中計算的,所以你得到的結果與'$((1,0))'和$((0,0))'一樣第一位數字被評估並丟棄,在這兩種情況下都會使用'0'。我不知道你在哪裏得到了第一個支持多維數組的想法。 –

+2

Bash ** ONLY **提供一維索引和關聯數組變量。儘管模擬多維數組有一些棘手的方法,但它們不是一個好的解決方案。 如果你有機會,你最好轉向其他腳本語言,比如Perl,Pyhton甚至是支持多維數組的一些Ksh版本。 – MarcM

回答

0

答案是討論增加

declare -A a 
+2

聲明變量'-a'(數組)不提供多維度支持。 Bash只支持一維數組。儘管模擬多維數組有一些棘手的方法,但它們不是一個好的解決方案。 – MarcM

+0

@MarcM它適合我 – MOHAMED

+0

@MOHAMED:這不是一個真正的二維數組 - 它只是一個使用哈希模擬二維數組的黑客 - 請參閱[這個答案](http://stackoverflow.com/a/16487733/253056)爲完整的解釋。 –