while语法结构
当条件满足时,while 重复地执行一组语句,当条件不满足时,就退出 while 循环。
- while 语法
while CONDITION; do
循环体
done
CONDITION表示判断条件,循环体表示要执行的语句(可以只有一条,也可以有多条)。
-
while 循环的执行流程为:
先对 CONDITION进行判断,如果该条件成立,就进入循环,执行 while 循环体中的语句,这样就完成了一次循环。每一次执行到 done 的时候都会重新判断 条件是否成立,如果成立,就进入下一次循环,继续执行 do 和 done 之间的语句,如果不成立,就结束整个 while 循环,执行 done 后面的其它 Shell 代码。 -
无限循环
注意,在 while 循环体中必须有相应的语句使得 condition 越来越趋近于“不成立”,只有这样才能最终退出循环,否则 while 就成了死循环,会一直执行下去,永无休止。
无限循环
while true; do
循环体
done
while示例
- 计算从 1 加到 100 的和。
#!/bin/bash
i=1
sum=0
while ((i <= 100))
do
((sum += i)) //也可以这样写let sum+=i
((i++)) //let ++i
done
echo "The sum is: $sum"
[root@zaishu ~]# ./while01.sh
the sum is :4950
- 计算从m到n的值
对上面的例子进行改进,计算从 m 加到 n 的值。
#!/bin/bash
read m
read n
sum=0
while ((m <= n))
do
((sum += m))
((m++))
done
echo "The sum is: $sum"
[root@zaishu ~]# ./while01.sh
10
20
The sum is: 165
- 加法计算器
#!/bin/bash
sum=0
echo "请输入您要计算的数字,按 Ctrl+D 组合键结束读取"
while read n
do
((sum += n))
done
echo "The sum is: $sum"
[root@zaishu ~]# ./calc01.sh
请输入您要计算的数字,按 Ctrl+D 组合键结束读取
10
20
30
90
80
The sum is: 230
- while 读取文件
结合管道输入读取文件的内容
打印出使用bash的用户名和bash. 可参照之前的read命令讲解