数组被称为相同类型元素的集合。 但是,尽管有其他脚本语言,但 Bash 数组并不是一组相似的元素。 我们可以在 Bash 数组中使用不同类型的元素,例如字符串和整数,因为 Bash 不区分它们。 请注意,Bash 不支持多维数组,因此无法在另一个数组中插入一个数组。 我们在 Bash 中只能使用一维索引数组和关联数组。 我们通过以下示例演示 Bash 数组的声明、初始化、修改、迭代和删除:
示例 1:Ubuntu 22.04 中的 Bash 索引数组
索引数组是一维数组,我们可以将索引数组称为列表。 当数组的键(索引)在有序整数中时,它们被称为索引数组。
我们使用“declare”关键字声明数组,并带有用于小写字母的“-a”标志。 我们将数组名称标记为“myArr”,然后插入一些字符串。 echo 命令用于显示数组的元素。 当我们使用“@”选项时,所有元素都会被打印出来。 然后,我们也通过给 echo 命令指定索引值来显示具体的索引元素。
下面显示了 Bash 数组的每个元素。 还会显示来自数组特定索引的元素。
示例 2:Ubuntu 22.04 中的 Bash 关联数组
关联 Bash 数组称为哈希表或字典。 关联数组是项的有序列表,其键表示为字符串。 请注意,我们只能在 Bash 中使用内置的“声明”术语来声明关联数组,而这对于索引数组不是强制性的。
我们使用带有“-A”标志的“declare”修饰符,该标志用于 Bash 中的大写字母。 然后,我们设置属性名称“COUNTRIES_CITIES”。 该属性表示关联数组。 我们通过为每个键字符串分配值来创建一个关联数组。 数组的每个字符串键都包含我们使用 echo 语句显示的字符串值。 使用选项“@”代替索引值打印数组的所有列表。
Bash 关联数组声明返回以下结果:
示例 3:Ubuntu 22.04 中的 Bash 循环遍历数组
迭代数组是 Bash 程序也支持的非常常见的方法。 在迭代时,我们简单地循环一系列特定事件,直到满足预定条件。 首先,我们通过“for in”循环看到迭代。 Bash 数组的对象值由“for in”循环迭代。
我们将 Bash 数组属性定义为“名称”。 数组“names”被分配了随机的人名。 之后,我们就有了 Bash 数组迭代的“for…in”循环。 声明了对象“n”,它是返回值的键。 循环重复直到对象“n”的所有元素都被使用。 每次迭代时,echo 命令都会显示 Bash 数组中的名称。
“for…in”循环单独打印 Bash 数组中的所有名称,如终端内所示。
现在,我们使用“for…loop”获取索引并重复它直到 Bash 数组的长度。 在循环的每次迭代中,索引用于检索数组的元素。 我们将 Bash 数组创建为“ArrElem”,它使用三个字符串元素进行初始化。 然后,我们使用“for….loop”迭代数组元素的末尾,直到满足条件。 echo 命令调用 Bash 数组,该数组包含在“for…loop”中声明的对象“n”。 对象“n”具有 Bash 数组的所有迭代元素。
Bash 数组迭代“for…loop”的元素并在输出 Bash 屏幕中返回。
我们已经看到了用于迭代 Bash 数组的“for in”循环和“for…loop”的功能。 现在,我们使用 while 循环遍历起始索引并在小于数组长度的索引处停止。 while 循环的每次迭代都允许我们访问给定索引处的数组项。
“num”被声明为具有整数的 Bash 数组。 对象“x”被定义为数组索引位置。 while 循环在其中调用此对象以进行从 index=0 开始并执行直到满足条件的迭代。 每次条件为真时,do 和 done 之间的 echo 语句就会执行,同时对象“x”也会递增。
以下元素从 Bash 数组的 while 循环中返回:
示例 4:Bash 在 Ubuntu 22.04 中附加一个数组
我们可以使用“+=”运算符将元素插入到 Bash 数组中,因为 Bash 没有提供内置函数。 通过使用此运算符,我们可以在 Bash 数组的末尾添加新元素。
在这里,我们构造了一个字符串数组,它被标记为“Array”。 初始数组只有三个元素,我们使用 echo 命令打印。 然后,我们将“+=”运算符与数组分配给的属性“Array”一起使用。 我们在该数组中添加两个字符串元素,并使用 echo 函数显示新的附加数组。
我们可以在下面的输出中看到,之前的 Bash 数组和新的 Bash 数组元素都附加在了末尾。
示例 5:Ubuntu 22.04 中的 Bash 数组长度
“#BashArray[@]” 表达式可用于检索 Bash 数组的长度。 井号“#”符号计算数组长度。 数组长度表示 Bash 数组中的所有元素。
首先,我们在“BashArray”变量中创建空的 Bash 数组。 然后,我们使用“+”运算符将字符串元素添加到 Bash 数组中。 我们分别在空的 Bash 数组中添加两个字符串元素。 然后,我们使用标签“#”符号和“BashArray”变量作为 Bash 数组的长度。
由于 Bash 数组中只存在两个元素,因此在以下编译中返回数组的长度为“2”:
示例 6:Ubuntu 22.04 中的 Bash 未设置数组
要从 Bash 数组索引中删除 Bash 数组或特定元素,我们使用 Bash 的内置函数“unset”。 unset 函数将空值分配给 Bash 数组的元素。
我们使用“-a”选项声明“元素”数组,并将字符串元素添加到该 Bash 数组中。 然后,我们使用 unset 命令删除 Bash 数组“元素”索引值“3”。
删除 Bash 数组中的索引值“3”,并显示剩余的 Bash 数组元素。
接下来,我们使用 Bash unset 命令删除整个 Bash 数组。
这一次,我们只是为 unset 命令提供了一个 Bash 数组名称“elements”,而不是指定索引值。 整个 Bash 数组被删除,因为它们被分配了空值。
Bash 数组元素现在被替换为空值,如 Bash 程序编译的快照所示。
结论
Bash 数组是非常有用的强大数据结构。 我们可以用 Bash 语言和数组将各种操作系统化,这样可以节省数百小时的手动任务。 在这里,我们介绍了使用 Linux 服务器 Ubuntu 22.04 的各种 Bash 阵列操作。 我们声明并初始化了索引和关联 Bash 数组。 然后,我们在 Bash 数组上使用循环方法。 我们使用 Bash 数组来追加元素并使用 unset 命令取消设置 Bash 数组。