如何制作多维数组Bash

时间:2013-02-27 00:47:59

标签: bash

所以我一直在寻找并在网上寻找如何制作二维数组。就像我有点理解一行线性阵列一样。但是,当我在线查看时,我看到的是一堆代码,我甚至不了解代码的每个组成部分。谢谢无论谁回答。

您能否向我解释代码的重要部分及其功能。

2 个答案:

答案 0 :(得分: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”,它就像多维数组一样。

答案 1 :(得分:0)

如果您想在不事先知道其编号的情况下列出这些元素,则非常方便的解决方案:

a=()
a+=( Mexico,2000 )
a+=( Canada,3000 )

for row in ${a[@]};
do
    echo place: ${row%%,*} airplanes: ${row##*,}
done