如何在bash中声明2D数组

如何在bash中声明2D数组,第1张

如何在bash中声明2D数组

您可以使用例如哈希来模拟它们,但需要注意前导零和许多其他事情。下一个演示有效,但远非最佳解决方案。

#!/bin/bashdeclare -A matrixnum_rows=4num_columns=5for ((i=1;i<=num_rows;i++)) do    for ((j=1;j<=num_columns;j++)) do        matrix[$i,$j]=$RANDOM    donedonef1="%$((${#num_rows}+1))s"f2=" %9s"printf "$f1" ''for ((i=1;i<=num_rows;i++)) do    printf "$f2" $idoneechofor ((j=1;j<=num_columns;j++)) do    printf "$f1" $j    for ((i=1;i<=num_rows;i++)) do        printf "$f2" ${matrix[$i,$j]}    done    echodone

上面的示例创建了一个具有随机数的4x5矩阵,并将其打印后转置,示例结果

1         2         3         4 1     18006     31193     16110     23297 2     26229     19869      1140     19837 3      8192      2181     25512      2318 4      3269     25516     18701      7977 5     31775     17358      4468     30345

原理是:创建一个关联数组,其中索引是类似的字符串

3,4
。好处:

  • 可以用于任意维度的数组;)像:
    30,40,2
    3维。
  • 语法类似于数组的“ C”
    ${matrix[2,3]}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5005979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存