Shell while循环语句的用法(附带实例)
while 循环在 Shell 脚本中是最简单的一种循环。当条件满足时,while 循环会重复执行一组自定义语句;当条件不满足时,就退出整个 while 循环。
while 循环的语法格式如下:
while 循环的具体执行流程如下:
在 while 循环体中必须有相应的语句使得判断条件越来越趋近于不成立,只有这样才能最终退出循环,否则 while 就成了死循环,会一直执行下去,永无休止。
下面通过几个案例带大家深入了解 while 循环。
【实例】使用 while 循环计算从 1 加到 100 的总和。
使用 while 循环做一个加法计算器,用户每次输入一个数字,计算所有输入数字的和。
while 循环的语法格式如下:
while condition do statements donecondition 表示判断条件,statements 表示要执行的自定义语句(可以只有一条,也可以有多条),do 和 done 都是固定不变的关键字。
while 循环的具体执行流程如下:
- 对判断条件(condition)进行判断,如果条件成立,就进入循环,执行循环体中的语句,也就是 do 和 done 之间的语句。这样就完成了一次循环。
- 每一次循环开始的时候都会重新判断 condition 是否成立。如果成立,就进入循环,继续执行 do 和 done 之间的语句;如果不成立,就结束整个 while 循环,执行 done 后面的其他 Shell 代码。
- 如果一开始 condition 就不成立,那么就不会进入循环体,do 和 done 之间的语句没有执行的机会。
在 while 循环体中必须有相应的语句使得判断条件越来越趋近于不成立,只有这样才能最终退出循环,否则 while 就成了死循环,会一直执行下去,永无休止。
下面通过几个案例带大家深入了解 while 循环。
【实例】使用 while 循环计算从 1 加到 100 的总和。
[root@linux opt]# vim demo41.sh #!/bin/bash i=1 sum=0 while ((i <= 100)) do ((sum += i)) ((i++)) done echo "The sum is: $sum" [root@linux opt]# bash demo41.sh The sum is: 5050在 while 循环中,只要判断条件成立,就会一直执行循环。对于这段代码而言,只要变量 i 的值小于等于 100,循环就会继续。每次循环都会让变量 sum 加上变量 i,再重新将新的结果赋值给变量 sum(sum=$sum+$i),接着变量 i 会加 1,开始新一轮的循环,直到变量 i 的值大于 100 时循环才会停止。自增表达式“i++”会使得i的值逐步增大,使得判断条件越来越趋近于不成立,最终退出循环。
使用 while 循环做一个加法计算器,用户每次输入一个数字,计算所有输入数字的和。
[root@linux opt]# vim demo43.sh #!/bin/bash sum=0 echo "请输入您要计算的数字,sum 变量的值超过 1200 将结束读取" while read n do ((sum += n)) echo "结果:" $sum if (( $sum > 1200 )); then break fi done [root@linux opt]# bash demo43.sh 请输入您要计算的数字,sum 变量的值超过 1200 将结束读取 13 结果:13 41 结果:54 199 结果:253 3443 结果:3696