遍历 Bash 脚本中的变量:for 循环与数组113


在 Bash 脚本中,for 循环是一种强大的工具,它可以轻松地遍历变量的内容。结合数组,它可以有效地在脚本中处理大量数据。

for 循环

for 循环的语法如下:```bash
for var in value1 value2 ... valueN
do
# 代码块
done
```

其中,var 是循环变量,它将在每次迭代中依次遍历值列表 value1、value2 等。代码块是在每次迭代中执行的一组命令。

数组

在 Bash 中,数组是存储一组相关值的有序集合。它们使用索引访问元素,索引从 0 开始。数组的语法如下:```bash
array_name=(value1 value2 ... valueN)
```

例如,以下代码创建了一个名为 names 的数组,其中包含三个元素:```bash
names=(John Mary Bob)
```

要访问数组元素,可以使用索引,如下所示:```bash
echo ${names[0]} # 输出:"John"
```

for 循环与数组

for 循环和数组可以结合使用,以便利地遍历数组的内容。以下示例演示如何使用 for 循环遍历 names 数组:```bash
for name in "${names[@]}"
do
echo $name
done
```

这将输出数组中每个元素:```
John
Mary
Bob
```

特殊变量

Bash 提供了几个特殊变量,用于 for 循环中获取有关循环状态的信息:* $#:循环中值的个数
* $*:循环中所有值的列表
* $@:循环中所有值作为一个数组

例如,以下代码使用 $# 变量打印循环中值的个数:```bash
for name in "${names[@]}"
do
echo $name
echo "# of values: $#"
done
```

这将输出:```
John
# of values: 3
Mary
# of values: 3
Bob
# of values: 3
```

遍历字符串

除了遍历数组外,还可以使用 for 循环遍历字符串。为此,使用字符串拆分命令 read,如下所示:```bash
str="Hello World"
for part in $(echo $str | tr " " "")
do
echo $part
done
```

这将输出字符串中的每个单词:```
Hello
World
```

遍历文件

还可以使用 for 循环遍历文件。为此,使用 read 命令,如下所示:```bash
while read line
do
# 处理 $line
done <
```

这将逐行读取文件 ,并在每次迭代中处理每一行。

在 Bash 脚本中,for 循环和数组提供了强大的工具,用于遍历数据。通过结合使用这些特性,可以有效地处理大量信息,从而编写更灵活、更强大的脚本。

2024-12-11


上一篇:发布 Bash 脚本到 Homebrew

下一篇:逐行逐字读取txt文档的Bash脚本