2013-02-27 60 views
0

所以我一直在尋找和在線尋找弄清楚如何製作一個二維數組。就像我有點理解一條線性線性陣列。但是當我看到在線的時候,我所看到的只是一堆代碼,我甚至都不知道代碼的每個組件都在做什麼。感謝無論誰回答。如何製作多維陣列Bash

你能否向我解釋一下代碼的重要部分和那裏的功能。

+1

你見過這篇文章:http://stackoverflow.com/questions/11233825/multi-dimensional-arrays-in-bash – paddy 2013-02-27 00:51:41

+0

@paddy所有這一切說的是使用python。此外,bash現在可以用bash 4.0 – Lifetake 2013-02-27 00:54:27

回答

2

多維數組是在bash 4關聯數組的一個特例:

# Make myarray an associative array 
declare -A myarray 

# Assign some random value 
myarray[3,7]="foo" 

# Access it through variables 
x=3 y=7 
echo "${myarray[$x,$y]}" 

它的工作原理,因爲「3,7」,就像任何其他的字符串。它也可以是「warthog」或「ThreeCommaSeven」。只要代碼中的其他內容將索引3和索引7轉換爲字符串「3,7」,它就像多維數組一樣工作。

+0

來做multidim,雖然@that其他人 – Lifetake 2013-02-27 00:57:18

+0

仍然是線性的,那麼這個'foo'的輸出是什麼?那麼這是如何使它成爲2D的呢?你可以給你一個小的前輸出嗎?感謝抱歉我沒有理解@那個其他人 – Lifetake 2013-02-27 01:02:02

+0

這與任何實現多維數組一樣好。如果你真正想要的是一個數組數組,那麼'$ {x [2]}'是另一個數組,那麼'bash'不是你的語言。這是可能的,但它很快變得很難看,因爲你必須用間接參數擴展和/或「eval」來僞裝它。 – chepner 2013-02-27 01:11:11