在 Linux 环境下,C 语言风格的 for
循环通常指的是通过一个三部分结构的循环方式,它的语法与 C 语言中的 for
循环非常相似。这种形式的 for
循环在 Shell 脚本中也是支持的,特别是在 Bash 中。
C 语言风格的 for
循环语法
在 Bash 脚本中,C 语言风格的 for
循环的基本语法如下:
for (( initialization; condition; increment/decrement ))
do
# 执行的命令
done
各部分的解释:
-
初始化部分 (
initialization
):- 这部分用于设置循环控制变量的初始值。在循环开始时执行一次。
-
条件部分 (
condition
):- 在每次迭代之前检查此条件。如果条件为
true
,循环继续;如果为false
,循环终止。
- 在每次迭代之前检查此条件。如果条件为
-
增量/递减部分 (
increment/decrement
):- 该部分在每次循环后执行,通常用于更新循环控制变量。
示例 1:经典的 C 风格 for
循环
假设我们希望打印数字 1 到 5:
#!/bin/bash
for (( i = 1; i <= 5; i++ ))
do
echo "当前数字是: $i"
done
输出:
当前数字是: 1
当前数字是: 2
当前数字是: 3
当前数字是: 4
当前数字是: 5
示例 2:倒序输出
如果你想要打印 5 到 1 的数字,可以在 for
循环中设置递减操作。
#!/bin/bash
for (( i = 5; i >= 1; i-- ))
do
echo "当前数字是: $i"
done
输出:
当前数字是: 5
当前数字是: 4
当前数字是: 3
当前数字是: 2
当前数字是: 1
示例 3:控制步长
在 C 语言风格的 for
循环中,你还可以灵活地控制步长。例如,假设我们希望打印 1 到 10,步长为 2:
#!/bin/bash
for (( i = 1; i <= 10; i+=2 ))
do
echo "当前数字是: $i"
done
输出:
当前数字是: 1
当前数字是: 3
当前数字是: 5
当前数字是: 7
当前数字是: 9
示例 4:复杂条件
你可以在循环条件部分使用更复杂的条件判断,例如,通过多个条件进行控制:
#!/bin/bash
for (( i = 0; i < 20; i++ ))
do
if (( i % 2 == 0 )); then
echo "偶数: $i"
else
echo "奇数: $i" fi
done
输出:
偶数: 0
奇数: 1
偶数: 2
奇数: 3
偶数: 4 ...
示例 5:多重初始化和增量操作
在 C 语言风格的 for
循环中,你还可以同时对多个变量进行初始化、更新:
#!/bin/bash
for (( i = 1, j = 10; i <= 5; i++, j-- ))
do
echo "i = $i, j = $j"
done
输出:
i = 1, j = 10
i = 2, j = 9
i = 3, j = 8
i = 4, j = 7
i = 5, j = 6
总结
在 Bash 脚本中,C 语言风格的 for
循环提供了一种更直观和灵活的循环方式,特别是在需要控制循环的初始化、条件和增量时。通过这种形式,你可以精确地控制循环的行为,适用于需要复杂条件判断或者同时操作多个变量的场景。