欢迎,来自IP地址为:3.143.168.172 的朋友


本节,将学习在 Bash 脚本中使用数组。尝试如何向数组中添加元素、删除元素以及如何获得数组长度。

数组可以保存一些数值,同时处理一组数据在某些时候对于解决问题会更加高效,并且不需要将不同的数值分别保存到不同的变量中。

例如有一组 Linux 发行版数值”Ubuntu”、”Fedora”、”SUSE”、”Arch Linux”以及”CentOS”,就可以通过如下方式初始化为一个数组:

# distros=(Ubuntu Fedora SUSE "Arch Linux" CentOS)

与其它编程语言不同,Bash 数组不需要使用逗号”,”来间隔元素。

现在我们来学习如何访问数组中的元素。

访问数组中元素

数组中的元素,同样可以使用元素的序号来访问。访问形式如下:

${array_name[N]}

PS:与大多数的编程语言一样,数组的序号都是从 0 开始,这意味着数组的第一个元素序号为 0,第二个元素为 1,以此类推,第 n 元素的序号为 n-1。

所以,如果想得到”SUSE”值,则可以通过如下形式访问:

echo ${distros[2]}

注意:访问数组中的元素,中间不允许出现空格,否则会报错不能访问。

一次性获得数组全部元素

如果想一次性打印数组中的所有元素,当然可以把数组中的元素单独打印出来,当然也可以使用如下方式快速访问:

${array[*]}

这样,就可以一次性把数组元素全部访问一遍:

获取数组长度

想要获取数组的长度(元素个数),Bash 可以使用如下方法:

${#array_name[@]}

是不是比较简单呢:

bash 向数组中增加元素

如果想要向数组中添加元素,可以使用”+=”操作符来为数组扩展元素。示例如下:

array_name+=("new_value")

下面是增加元素的示例:

注意,增加元素时,无率元素是否包含空格,都必须用括号”()”括起来。

当然,我们也可以为增加的元素指定序号,例如:

array_name[N]=new_value

注意,使用序号要十分小心,如果指定的序号已经使用,则会用新的值替换原数组中的数值。

如果指定的序号并非数组最后元素序号加1,而是较它大的多,系统也不会出错,而是会自动在数组最后增加元素,数组长度为实际长度,并不会增加空元素。

删除数组中的元素

想要删除数组中的元素,使用”unset”命令即可。格式如下:

unset array_name[N]

示例演示如下:

如果想清空数组,则只需要使用”unset”数组名即可:

unset array_name

Bash 脚本并未强制要求数组中的数据类型完全一致,所以我们定义的数组既可以包含整数,同时也可以包含字符串。

接下来,我们将学习如何处理字符串 >>Bash 基础(六):字符串操作<<

One thought on “Bash 基础(五):Bash 使用数组”

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注