1. for
循环
for
循环用于在指定次数的范围内反复执行一段代码。通常可以基于一个固定的数值范围、数组或列表来进行循环。
语法
for variable in value1 value2 value3 ... do # 循环体代码 done
variable
是你在循环中使用的变量。value1, value2, value3,...
是一个值的列表,variable
会依次取这些值。- 每次循环时,
variable
会从值列表中取出一个新的值,并执行do
和done
之间的代码。
eg、
for i in 1 2 3 4 5
do
echo "当前数字是: $i"
done
输出:
当前数字是: 1 当前数字是: 2 当前数字是: 3 当前数字是: 4 当前数字是: 5
eg、循环1至100;
使用范围或步骤
如果你需要指定一个数字范围,可以用大括号表示,例如:
for i in {1..5} do echo "当前数字是: $i" done
或者你可以指定步长:
for i in {1..10..2} do echo "当前数字是: $i" done
这会输出 1, 3, 5, 7, 9
。
2. while
循环
while
循环会在条件满足的情况下反复执行循环体。每次执行前,Shell会判断条件是否成立,若条件成立,则继续执行循环体;否则退出循环。
语法
while [ condition ] do # 循环体代码 done
condition
是一个测试条件,通常使用方括号[]
包裹。- 当
condition
为真时,执行do
和done
之间的代码。
eg、
i=1
while [ $i -le 5 ]
do
echo "当前数字是: $i" ((i++)) # i递增
done
输出:
当前数字是: 1 当前数字是: 2 当前数字是: 3 当前数字是: 4 当前数字是: 5
解释
i=1
初始化变量i
为 1。[ $i -le 5 ]
这是条件测试,表示当i
小于或等于 5 时,继续循环。((i++))
是自增操作,将i
增加 1。
eg、
3. until
循环
until
循环与 while
循环类似,不同之处在于 until
循环会在条件 不成立 时继续执行,直到条件为真时才停止。
语法
until [ condition ] do # 循环体代码 done
示例
i=1
until [ $i -gt 5 ]
do
echo "当前数字是: $i" ((i++))
done
输出:
当前数字是: 1 当前数字是: 2 当前数字是: 3 当前数字是: 4 当前数字是: 5