Bash 语言 for 循环遍历的基础语法教学

Bash阿木 发布于 2025-06-12 12 次阅读


Bash for 循环基础语法教学

Bash 是一种广泛使用的 Unix/Linux shell,它提供了强大的命令行环境,使得用户能够通过命令行执行各种操作。在 Bash 中,`for` 循环是一种非常实用的控制结构,用于遍历一系列值,如文件列表、数字序列或字符串。本文将围绕 Bash 的 `for` 循环基础语法进行教学,帮助读者掌握这一重要工具。

1. for 循环简介

`for` 循环是 Bash 中最常用的循环结构之一,它允许你重复执行一组命令,直到满足特定的条件。`for` 循环的基本语法如下:

bash
for 变量 in 列表
do
命令序列
done

其中,`变量` 是用于存储列表中每个元素的临时变量,`列表` 是一系列值,可以是文件名、数字、字符串等,`命令序列` 是在循环中要执行的命令。

2. 列表类型

在 `for` 循环中,`列表` 可以是多种类型,以下是几种常见的列表类型:

2.1 文件名列表

bash
for file in .txt
do
echo "处理文件:$file"
done

这段代码会遍历当前目录下所有以 `.txt` 结尾的文件,并打印出每个文件的名称。

2.2 数字序列

bash
for i in 1 2 3 4 5
do
echo "数字:$i"
done

这段代码会遍历数字 1 到 5,并打印出每个数字。

2.3 字符串序列

bash
for color in red green blue
do
echo "颜色:$color"
done

这段代码会遍历字符串 `red`、`green` 和 `blue`,并打印出每个颜色。

3. 变量扩展

在 `for` 循环中,可以使用变量扩展来创建更复杂的列表。以下是一些常用的变量扩展:

3.1 `` 通配符

bash
for file in
do
if [ -d "$file" ]; then
echo "目录:$file"
fi
done

这段代码会遍历当前目录下的所有文件和目录,并打印出目录的名称。

3.2 `` 双星通配符

bash
for file in
do
if [ -d "$file" ]; then
echo "目录:$file"
fi
done

双星通配符可以递归地遍历目录,包括子目录。

3.3 `$(command)` 命令替换

bash
for file in $(ls /path/to/directory)
do
echo "文件:$file"
done

命令替换允许你将命令的输出作为 `for` 循环的列表。

4. 循环控制

在 `for` 循环中,你可以使用 `continue` 和 `break` 语句来控制循环的执行。

4.1 `continue` 语句

`continue` 语句用于跳过当前迭代,并继续执行下一个迭代。

bash
for i in 1 2 3 4 5
do
if [ $i -eq 3 ]; then
continue
fi
echo "数字:$i"
done

这段代码会跳过数字 3,并打印出 1、2、4 和 5。

4.2 `break` 语句

`break` 语句用于立即退出循环。

bash
for i in 1 2 3 4 5
do
if [ $i -eq 3 ]; then
break
fi
echo "数字:$i"
done

这段代码会在数字 3 时退出循环,只打印出 1 和 2。

5. 循环嵌套

`for` 循环可以嵌套使用,以遍历多维数据结构。

bash
for i in 1 2 3
do
for j in 4 5 6
do
echo "i=$i, j=$j"
done
done

这段代码会遍历数字 1 到 3 和 4 到 6,打印出所有可能的组合。

6. 总结

`for` 循环是 Bash 中一种强大的控制结构,它允许你遍历一系列值并执行相应的命令。通过本文的学习,你应该已经掌握了 Bash `for` 循环的基础语法和用法。在实际应用中,`for` 循环可以帮助你自动化各种任务,提高工作效率。

7. 扩展阅读

- [Bash for 循环进阶教程](https://example.com/advanced-for-loop-tutorial)
- [Bash 变量扩展](https://example.com/bash-variable-extensions)
- [Bash 循环控制语句](https://example.com/bash-loop-control-statements)

请注意,上述链接为示例,实际链接可能需要根据实际情况进行替换。