2016-11-24 48 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)为完整的解释。 –