0%

循环语句

循环语句

Bash中有三种可以用来重复执行一系列命令的语句:for循环语句、while循环语句和until循环语句

for循环

1
2
3
4
5
6
7
8
9
10
11
#for循环的语法一  
for 变量 in 列表
do
语句
done

#for循环的语法二
for (( 初始值;循环控制条件;变量变化 ))
do
语句
done

示例:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
# 语法一
for num in 1 2 3 4 5
do
echo "num is $num"
done

#语法二 C语言风格的for循环
for (( i=0;i<=5;i++ ))
do
echo "num is $i"
done

默认情况下bash会使用 空格、制表符、换行符来作为字段分隔符,如果想要更改分隔符,可以来修改IFS,如想只识别换行符

1
IFS=$'\n'

如果想指定多个字符可以在赋值的时候串起来

1
2
# 换行符、冒号、分号都会分隔
IFS=$'\n':;

while循环

1
2
3
4
5
#while循环的语法  
while [ 循环条件 ]
do
语句
done

示例:

1到10相加

1
2
3
4
5
6
7
8
9
#!/bin/bash
sum=0
i=1
while [ $i -le 10 ]
do
sum=$(($sum+$i))
i=$(($i+1))
done
echo $sum

until循环

until循环和while循环相反,until循环只要条件不成立则进行循环,一旦条件成立,则终止

1
2
3
4
5
#until循环的语法
until [ 循环条件 ]
do
语句
done

示例:

1到10相加

1
2
3
4
5
6
7
8
9
#!/bin/bash
sum=0
i=1
until [ $i -gt 10 ]
do
sum=$(($sum+$i))
i=$(($i+1))
done
echo $sum

退出循环

退出循环主要使用exit、continue、break这三个来进行控制

exit

exit表示退出当前shell脚本,后续程序不再执行,可以指定返回值

1
2
3
4
5
6
7
8
9
#!/bin/bash
for num in 1 2 3 4 5
do
if [ $num == 2 ]
then
exit 0
fi
echo "num is $num"
done

break

使用break会跳出当前循环,执行done后面的语句

1
2
3
4
5
6
7
8
9
#!/bin/bash
for num in 1 2 3 4 5
do
if [ $num == 3 ]
then
break
fi
echo "num is $num"
done

如果是多层循环,想要跳出的话,则使用break n,n默认是1,所以只会跳出最内层的循环,如果使用break 2就可以跳出两层循环

continue

使用continue跳出本次循环,使得程序跳到done,从而开始下一次循环

1
2
3
4
5
6
7
8
9
#!/bin/bash
for num in 1 2 3 4 5
do
if [ $num == 3 ]
then
continue
fi
echo "num is $num"
done

欢迎关注我的其它发布渠道