如何在BASH中制作3D阵列?

用户名

我想在BASH中编写/制作/使用[m] [n] [k]的3D数组。据我了解,BASH不支持非一维数组。

有什么想法怎么做?

格伦·杰克曼

使用精心设计的关联数组键伪造多维:

declare -A ary
for i in 1 2 3; do 
    for j in 4 5 6; do 
        for k in 7 8 9; do 
            ary["$i,$j,$k"]=$((i*j*k))
        done
    done
done
for key in "${!ary[@]}"; do printf "%s\t%d\n" "$key" "${ary[$key]}"; done | sort
1,4,7   28
1,4,8   32
1,4,9   36
1,5,7   35
1,5,8   40
1,5,9   45
1,6,7   42
1,6,8   48
1,6,9   54
2,4,7   56
2,4,8   64
2,4,9   72
2,5,7   70
2,5,8   80
2,5,9   90
2,6,7   84
2,6,8   96
2,6,9   108
3,4,7   84
3,4,8   96
3,4,9   108
3,5,7   105
3,5,8   120
3,5,9   135
3,6,7   126
3,6,8   144
3,6,9   162

sort之所以使用,是因为assoc.array的键没有固有的顺序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章