介绍
在本实验中,你将学习如何在 shell 编程中使用数组。数组是一种数据结构,允许你在单个名称下存储多个值,从而更容易组织和操作数据。你将学习如何初始化数组、向数组中添加元素、通过索引访问元素以及确定数组中的元素数量。这些知识对于更高级的 shell 脚本编写和数据处理任务至关重要。
在本实验中,你将学习如何在 shell 编程中使用数组。数组是一种数据结构,允许你在单个名称下存储多个值,从而更容易组织和操作数据。你将学习如何初始化数组、向数组中添加元素、通过索引访问元素以及确定数组中的元素数量。这些知识对于更高级的 shell 脚本编写和数据处理任务至关重要。
让我们从创建一个新的 shell 脚本文件开始,我们将在其中编写数组操作。
在 WebIDE 中打开你的终端。
导航到项目目录:
cd ~/project
使用 touch
命令创建一个名为 arrays.sh
的新文件:
touch arrays.sh
在 WebIDE 中打开 arrays.sh
文件。
现在我们已经有了脚本文件,让我们从初始化三个空数组开始。
将以下代码添加到你的 arrays.sh
文件中:
#!/bin/bash
## Initialize empty arrays
NUMBERS=()
STRINGS=()
NAMES=()
让我们分解一下这段代码的作用:
#!/bin/bash
被称为 shebang。它告诉系统这个脚本应该由 Bash shell 执行。NUMBERS
、STRINGS
和 NAMES
。()
语法用于初始化一个空数组。现在我们已经有了空数组,让我们向其中添加一些元素。
将以下代码添加到你的 arrays.sh
文件中,放在数组初始化的下方:
## Add elements to NUMBERS array
NUMBERS+=(1)
NUMBERS+=(2)
NUMBERS+=(3)
## Add elements to STRINGS array
STRINGS+=("hello")
STRINGS+=("world")
## Add elements to NAMES array
NAMES+=("John")
NAMES+=("Eric")
NAMES+=("Jessica")
这段代码的作用如下:
+=
运算符向数组中追加元素。NUMBERS
数组,我们添加了整数 1、2 和 3。STRINGS
数组,我们添加了单词 "hello" 和 "world"。NAMES
数组,我们添加了三个名字:"John"、"Eric" 和 "Jessica"。数组的一个常见操作是找出它们包含多少个元素。让我们为 NAMES
数组实现这一操作。
将以下代码添加到你的 arrays.sh
文件中:
## Get the number of elements in the NAMES array
NumberOfNames=${#NAMES[@]}
这行代码的作用如下:
${#NAMES[@]}
用于获取 NAMES
数组中元素的数量。NumberOfNames
的变量中。@
符号表示数组的所有元素。NAMES
前面的 #
符号告诉 shell 计算元素的数量。现在,让我们访问 NAMES
数组中的特定元素。我们将获取第二个名字。
将以下代码添加到你的 arrays.sh
文件中:
## Access the second name in the NAMES array
second_name=${NAMES[1]}
这段代码的作用如下:
${NAMES[1]}
访问 NAMES
数组的第二个元素。[1]
表示第二个元素。second_name
的变量中。最后,让我们添加一些代码来打印数组和变量,以查看操作的结果。
将以下代码添加到你的 arrays.sh
文件的末尾:
## Print the arrays and variables
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 个名字。在本实验中,你学习了在 shell 脚本中使用数组的基础知识。你练习了初始化数组、向数组中添加元素、访问特定元素以及确定数组中元素的数量。这些技能对于更高级的 shell 脚本任务至关重要,尤其是在处理数据列表或需要对多个项目执行操作时。数组为组织和管理 shell 脚本中的数据提供了一种强大的方式,使你的代码更高效且更易于管理。