10.shell循环while
shell循环 while
1.while
while 循环是 Shell 脚本中最简单的⼀种循环,当条件满⾜时,while 重复地执⾏⼀组语句,当条件不满⾜时,就退出 while 循环。
Shell while 循环的⽤法如下:
while condition
do
statements
done
condition表⽰判断条件,statements表⽰要执⾏的语句(可以只有⼀条,也可以有多条),do和done都是 Shell 中的关键字。
while 循环的执⾏流程为:
先对 condition 进⾏判断,如果该条件成⽴,就进⼊循环,执⾏ while 循环体中的语句,也就是 do 和 done 之间的语句。这样就完成了⼀次循环。
每⼀次执⾏到 done 的时候都会重新判断 condition 是否成⽴,如果成⽴,就进⼊下⼀次循环,继续执⾏ do 和 done 之间的语句,如果不成⽴,就结束整个 while 循环,执⾏ done 后⾯的其它 Shell 代码。
如果⼀开始 condition 就不成⽴,那么程序就不会进⼊循环体,do 和 done 之间的语句就没有执⾏的机会。
注意,在 while 循环体中必须有相应的语句使得 condition 越来越趋近于“不成⽴”,只有这样才能最终退出循环,否则 while 就成了死循环,会⼀直执⾏下去,永⽆休⽌。
while 语句和 if else 语句中的 condition ⽤法都是⼀样的,可以使⽤ test 或 [] 命令,也可以使⽤ (()) 或 [[]]
例1
计算从 1 加到 100 的和
#!/bin/bash
i=1
sum=0
while((i <= 100))
do
((sum += i))
((i++))
done
echo"The sum is: $sum"
例2
计算从 1 加到 100 的和
#!/bin/bash
i=0
while[[$i-le 100 ]];
do
let sum=$sum+$i
i=$i+1
while语句简单例子done
echo"1+2+3+...+100=$sum"
例3
实现⼀个简单的加法计算器,⽤户每⾏输⼊⼀个数字,计算所有数字的和
#!/bin/bash
sum=0
echo"请输⼊您要计算的数字,按 Ctrl+D 组合键结束读取"
while read n
do
((sum += n))
done
echo"The sum is: $sum"
运⾏结果:
12
33
454
6767
1
2
The sum is: 7269
在终端中读取数据,可以等价为在⽂件中读取数据,按下 Ctrl+D 组合键表⽰读取到⽂件流的末尾,此时 read 就会读取失败,得到⼀个⾮0 值的退出状态,从⽽导致判断条件不成⽴,结束循环。
2 .until
until循环和 while 循环恰好相反,当判断条件不成⽴时才进⾏循环,⼀旦判断条件成⽴,就终⽌循环。
until 的使⽤场景很少,⼀般使⽤ while 即可。
Shell until 循环的⽤法如下:
until condition
do
statements
done
condition表⽰判断条件,statements表⽰要执⾏的语句(可以只有⼀条,也可以有多条),do和done都是 Shell 中的关键字。
until 循环的执⾏流程为:
先对 condition 进⾏判断,如果该条件不成⽴,就进⼊循环,执⾏ until 循环体中的语句(do 和 done 之间的语句),这样就完成了⼀次循环。
每⼀次执⾏到 done 的时候都会重新判断 condition 是否成⽴,如果不成⽴,就进⼊下⼀次循环,继续执⾏循环体中的语句,如果成⽴,就结束整个 until 循环,执⾏ done 后⾯的其它 Shell 代码。
如果⼀开始 condition 就成⽴,那么程序就不会进⼊循环体,do 和 done 之间的语句就没有执⾏的机会。
注意,在 until 循环体中必须有相应的语句使得 condition 越来越趋近于“成⽴”,
只有这样才能最终退出循环,否则 until 就成了死循环,会⼀直执⾏下去,永⽆休⽌。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。