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 脚本中循环语句的基本用法和格式。