Bash 中的多维数组
多维数组对于任何程序都是非常重要的元素。 它主要用于创建数据的表视图和许多其他用途。
本文演示如何创建二维数组。 此外,我们将通过必要的示例和解释来讨论该主题。
我们将在这里讨论两种不同的方法。
在 Bash 中声明多维数组的基本方法
这是创建多维数组的最基本方法。 在下面的示例中,我们将创建一个非常基本的二维数组。
下面是我们示例的代码。
ArrayOfArray_1=("Alen" "24")
ArrayOfArray_2=("Walker" "31")
MainArray=(
ArrayOfArray_1[@]
ArrayOfArray_2[@]
)
ArrayLength=${#MainArray[@]}
for ((i=0; i<$ArrayLength; i++))
do
name=${!MainArray[i]:0:1}
age=${!MainArray[i]:1:1}
echo "Name : ${name}"
echo "Age : ${age}"
done
上面的代码显示我们声明了两个不同的数组,名为 ArrayOfArray_1 和 ArrayOfArray_2。 之后,我们声明了我们的主数组,其元素是我们最近声明的这两个数组。
然后我们计算了一个循环的数组长度。 在循环内部,我们通过索引主数组从这两个子数组中提取数据。
最后,我们回显最终结果。 执行脚本后,您将获得如下所示的输出。
Name : Alen
Age : 24
Name : Walker
Age : 31
在 Bash 中使用关联数组声明二维数组
这个方法有点复杂。 此方法将讨论一个名为关联数组的特殊 Bash 脚本数组。
关联数组是一种特殊的数组,可以将字符串值存储为键或索引。 它类似于其他编程语言。
声明关联数组的一般语法是 declare -A ArrayName。
下面的示例将创建一个包含五行六列的二维数组。 下面是我们示例的代码。
declare -A Array2D
RowNum=5
ColumnNum=6
for ((i=1;i<=RowNum;i++)) do
for ((j=1;j<=ColumnNum;j++)) do
Array2D[$i,$j]=$RANDOM
done
done
f1="%$((${#RowNum}+1))s"
f2=" %9s"
printf "$f1" ''
for ((i=1;i<=RowNum;i++)) do
printf "$f2" $i
done
echo
for ((j=1;j<=ColumnNum;j++)) do
printf "$f1" $j
for ((i=1;i<=RowNum;i++)) do
printf "$f2" ${Array2D[$i,$j]}
done
echo
done
在上面的示例中,我们声明了一个名为 Array2D 的关联数组。
之后,我们创建了两个变量并为它们分配了一个整数值。 此整数值指定行数和列数。
然后我们创建了一个嵌套循环,用随机数填充数组。
现在我们完成了数组的声明和组织。 是时候看看我们的二维数组是什么样子了。
我们通过使用一些循环来做到这一点,如代码所示。 当您执行上面的脚本时,您将看到如下所示的输出。
1 2 3 4 5
1 16700 5241 2599 24330 1662
2 23264 19557 10425 13413 25606
3 17987 4199 13598 23897 26734
4 24420 27830 24855 8165 13531
5 15495 18790 13347 12947 11826
6 23458 22838 137 32454 32441
本文中的所有代码都是用 Bash 编写的。 它只会在 Linux Shell 环境中工作。
相关文章
在 Bash 中运行 find -exec 命令
发布时间:2024/03/14 浏览次数:127 分类:操作系统
-
本文将演示如何使用 find 命令的 -exec 参数来使用 find 命令定位文件中的任何文本。