1. for
循环
for
循环通常用于遍历一个序列或列表。
基本格式:
1 2 3 4
| for variable in list do done
|
variable
:循环变量,变量名任取,每次迭代都会从列表中取一个值赋给它。
list
:一个值的序列,可以是字符串、数字或文件名列表。
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| for i in A B C do echo "字母 $i" done
for i in {1..5} do echo "数字 $i" done
for file in *.txt do echo "处理文件 $file" done
|
大括号扩展
list可以使用大括号扩展,用于生成:
- 连续的数字序列:
{1..3}
生成 1 2 3
。
- 字符序列:
{a..c}
生成 a b c
。
- 组合序列:
{1..3..5}
生成 1 3
(从 1 开始到 3 结束,步长为 5)。
- 组合字符和数字:
{a..e..2}
生成 a c e
(步长为 2)。
语法
{start..end}
:生成从 start
到 end
的连续序列。
{start..end..step}
:生成从 start
到 end
的连续序列,步长为 step
。
2. while
循环
while
循环会一直执行,直到条件不再为真。
基本格式:
1 2 3 4
| while [ condition ] do done
|
示例:
1 2 3 4 5 6 7 8
| #!/bin/bash
i=0 while [ $i -lt 5 ] do echo "数字 $i" ((i++)) done
|
3. until
循环
until
循环与 while
循环相反,它会一直执行,直到条件为真。
基本格式:
1 2 3 4
| until [ condition ] do done
|
示例:
1 2 3 4 5 6 7 8
| #!/bin/bash
i=0 until [ $i -ge 5 ] do echo "数字 $i" ((i++)) done
|
4. C 风格的 for
循环
Bash 也支持 C 风格的 for
循环,它更接近于其他编程语言中的 for
循环。
基本格式:
1 2 3 4
| for (( init; condition; increment )) do done
|
init
:初始化表达式。
condition
:循环继续的条件。
increment
:每次迭代后执行的表达式。
示例:
1 2 3 4 5 6
| #!/bin/bash
for (( i=0; i<5; i++ )) do echo "数字 $i" done
|
注意事项
- 在使用循环时,确保循环有明确的退出条件,以避免无限循环。
- 在处理文件列表时,可以使用通配符(如
*.txt
)来指定所有 .txt
文件。
- 使用
break
语句可以提前退出循环,而 continue
语句可以跳过当前迭代,直接进行下一次迭代。
这些是 Bash 脚本中循环语句的基本用法和格式。