帮助文档 > Shell 数组

Shell 数组

发布时间:2024-09-03 18:01

Shell 数组是一种特定类型的变量,表示一个数据集合,其中每个数据项被称为数组元素。目前,bash 仅支持一维索引数组和关联数组,且 bash 对数组的大小没有限制。

【一】数组的定义
定义数组即为声明一个数组并为其赋值。下面将分别介绍索引数组和关联数组的定义方法。

1. 索引数组
索引数组是通过数字下标访问的数组。下标,即索引,可以用0、1、2、3等数字表示,或使用算术表达式,但表达式的结果必须是整数。定义索引数组的方法如下:

方法1: 使用下标方式定义,下标从0开始,格式如下:


方法2: 使用括号定义,数组元素之间用空格分隔,语法格式如下:

2. 关联数组
关联数组允许使用非数字作为下标,索引可以是任意字符串,并且必须唯一,索引和值可以不同。以下是一个名为 `user_info` 的数组定义示例:

注意:在函数外部定义的关联数组为全局变量,在函数内部定义的关联数组为局部变量。

【二】 数组的基本操作
在 Linux shell 中,常见的数组操作包括获取元素值、获取数组长度、以及删除元素。以下是一些相关的操作示例。

获取单个元素的值:

获取所有元素的值:

获取数组的长度:

获取数组的索引值:

删除数组元素或整个数组:

【三】数组的循环遍历
在 Linux shell 中,可以使用 `for` 循环、`for..in` 循环和 `while` 循环来遍历数组。以下分别介绍这几种遍历方法。

使用标准 `for` 循环遍历数组,通用格式如下:

使用 `for…in` 循环遍历数组,通用格式如下:

使用 `while` 循环遍历数组,通用格式如下:

关于 `${array[*]}` 和 `${array[@]}` 的区别:当通过 `echo` 输出数组的所有元素时,这两者的效果是一样的。但是在循环中,`${array[*]}` 会将所有数组元素视为一个整体,而 `${array[@]}` 则将所有数组元素视为独立的个体,推荐使用 `${array[@]}`。

本文导读

客户热线:13306992629

客户服务中心