while判断条件是否成立,若成立则进入while的分支,举例如下:
#/bin/bash
var1=1
var2=4
while [ $var1 -lt 3 ] && [ $var2 -gt 0 ];do
echo "$var1 * $var2 = $[$var1 * $var2]"
var1=$[$var1 1]
var2=$[$var2 - 1]
done
运行结果为:
1 * 4 = 4
2 * 3 = 6
util语句until语句的逻辑与while相反,while当条件判断成功时进入循环,until条件判断失败时进入,举例如下:
#/bin/bash
var=0
until [ $var -gt 3 ];do
echo "var=$var"
var=$[$var 1]
done
运行结果如下:
var=0
var=1
var=2
var=3
break语句和continue语句break语句用于跳出当前层的循环,举例如下:
#/bin/bash
for ((i=0; i<2;i ));do
for ((j=0;j<5;j ));do
echo "i=$i,j=$j"
if [ $j -eq 2 ];then
break
fi
done
done
运行如下:
i=0,j=0
i=0,j=1
i=0,j=2
i=1,j=0
i=1,j=1
i=1,j=2
break只能跳出当前层的循环,上面这个例子有两层循环的嵌套,那么当内层的break执行的时候只能跳出内层。
如果想要跳出多层循环,可以使用break n,举例如下:
#/bin/bash
for ((i=0; i<2;i ));do
for ((j=0;j<5;j ));do
echo "i=$i,j=$j"
if [ $j -eq 2 ];then
break 2
fi
done
done
运行结果如下:
i=0,j=0
i=0,j=1
i=0,j=2
continue语句用于终止本次循环,即本次循环中continue后面的代码不执行,进行下一次循环的入口判断,举例如下:
#/bin/bash
for ((i=0; i<5;i ))
do
if [ $i -lt 3 ];then
continue
fi
echo "i = $i"
done
运行结果如下:
i = 3
i = 4
cotinue语句和break一样,也可以用continue n