介绍
在本实验中,你将学习如何在 Shell 编程中使用数组。数组是一种允许你在单个名称下存储多个值的数据结构,这使得组织和处理数据变得更加容易。你将学习如何初始化数组、向数组添加元素、通过索引访问元素以及确定数组中元素的数量。这些知识是进行更高级的 Shell 脚本编写和数据处理任务的基础。
创建新的 Shell 脚本文件
首先,我们创建一个新的 Shell 脚本文件,用于编写数组操作代码。
在 WebIDE 中打开终端。
切换到项目目录:
cd ~/project使用
touch命令创建一个名为arrays.sh的新文件:touch arrays.sh在 WebIDE 中打开
arrays.sh文件。
初始化空数组
现在我们有了脚本文件,让我们从初始化三个空数组开始。
将以下代码添加到你的 arrays.sh 文件中:
#!/bin/bash
## 初始化空数组
NUMBERS=()
STRINGS=()
NAMES=()
让我们分析一下这段代码的作用:
- 第一行
#!/bin/bash被称为 Shebang。它告诉系统该脚本应由 Bash Shell 执行。 - 我们创建了三个空数组:
NUMBERS、STRINGS和NAMES。 ()语法用于初始化一个空数组。
向数组添加元素
现在我们有了空数组,让我们向其中添加一些元素。
在 arrays.sh 文件中数组初始化的下方添加以下代码:
## 向 NUMBERS 数组添加元素
NUMBERS+=(1)
NUMBERS+=(2)
NUMBERS+=(3)
## 向 STRINGS 数组添加元素
STRINGS+=("hello")
STRINGS+=("world")
## 向 NAMES 数组添加元素
NAMES+=("John")
NAMES+=("Eric")
NAMES+=("Jessica")
这段代码的作用如下:
- 我们使用
+=运算符向数组追加元素。 - 对于
NUMBERS,我们添加了整数 1、2 和 3。 - 对于
STRINGS,我们添加了单词「hello」和「world」。 - 对于
NAMES,我们添加了三个名字:「John」、「Eric」和「Jessica」。 - 请注意,我们将字符串元素括在引号中,但数字不需要引号。
确定数组中的元素数量
数组的一种常见操作是获取它包含多少个元素。让我们对 NAMES 数组执行此操作。
将以下代码添加到你的 arrays.sh 文件中:
## 获取 NAMES 数组中的元素数量
NumberOfNames=${#NAMES[@]}
这一行执行了以下操作:
${#NAMES[@]}返回NAMES数组中的元素个数。- 我们将这个值存储在名为
NumberOfNames的变量中。 - 括号内的
@符号代表数组中的所有元素。 NAMES前面的#符号告诉 Shell 计算元素的数量。
访问数组中的特定元素
现在,让我们访问 NAMES 数组中的一个特定元素。我们将获取第二个名字。
将此代码添加到你的 arrays.sh 文件中:
## 访问 NAMES 数组中的第二个名字
second_name=${NAMES[1]}
这段代码的作用如下:
- 我们通过
${NAMES[1]}访问NAMES数组的第二个元素。 - 请记住,Bash 中的数组索引从 0 开始,因此
[1]代表第二个元素。 - 我们将这个值存储在名为
second_name的变量中。
打印数组和变量
最后,让我们添加一些代码来打印出我们的数组和变量,以查看操作结果。
将以下代码添加到 arrays.sh 文件的末尾:
## 打印数组和变量
echo "NUMBERS array: ${NUMBERS[@]}"
echo "STRINGS array: ${STRINGS[@]}"
echo "The number of names listed in the NAMES array: $NumberOfNames"
echo "The second name on the NAMES list is: $second_name"
这段代码的作用如下:
- 我们使用
echo将字符串打印到控制台。 ${NUMBERS[@]}和${STRINGS[@]}会打印这些数组的所有元素。- 我们打印了之前创建的
NumberOfNames和second_name变量。
运行脚本
现在我们已经写好了脚本,是时候运行它并查看结果了。
在终端中,确保你处于正确的目录:
cd ~/project为脚本添加执行权限:
chmod +x arrays.sh运行脚本:
./arrays.sh
你应该会看到类似以下的输出:
NUMBERS array: 1 2 3
STRINGS array: hello world
The number of names listed in the NAMES array: 3
The second name on the NAMES list is: Eric
此输出表明我们的数组操作成功了:
NUMBERS数组包含 1、2 和 3。STRINGS数组包含「hello」和「world」。- 我们正确计算出
NAMES数组中有 3 个名字。 - 我们成功获取了「Eric」作为第二个名字。
总结
在本实验中,你学习了在 Shell 脚本中使用数组的基础知识。你练习了初始化数组、向数组添加元素、访问特定元素以及确定数组中的元素数量。这些技能对于更高级的 Shell 脚本任务至关重要,尤其是在处理数据列表或需要对多个项目执行操作时。数组提供了一种强大的方式来组织和处理 Shell 脚本中的数据,使你的代码更高效且更易于管理。



