Shell笔记7——while和until循环的应用实践
本文主要讲解Shell脚本开发中while和until循环的知识与实践基本大纲:
1.当型和直到型循环语法
2.当型和直到型循环的基本范例
3.shell脚本在后台运行的知识
4.while循环按行读文件的方式总结
5.while循环语句生产实践
一:当型和直到型循环语法
循环语句命令常用于重复执行一条指令或一组指令,直到条件不再满足时停止,Shell脚本语言的循环语句常见的有while、until、for、及select循环语句。
while循环语句主要用来重复执行一组命令或语句,在企业实际应用中,常用于守护进程或持续运行的程序。
1.while循环语句的基本语法为:
while
do
指令...
done
注:while循环语句会对紧跟在while命令后的条件表达式进行判断,如果该条件表达式成立,则执行while循环体里的命令或语句(即语法中do和done之间的指令),每一次执行到done时就会重新判断while条件表达式是否成立,知道条件表达式不成立时才会跳出while循环体。如果一开始条件表达式就不成立,那么程序就不会进入循环体(即语法中do和done之间的部分)中执行命令了。
2.until循环语句的语法为:
until
do
指令...
done
注:until循环语句的用法与while循环语句的用法类似,区别是until会在条件表达式不成立时,进入循环执行指令;条件表达式成立时,终止循环。
二:当型和直到型循环的基本范例
范例1:每隔5秒输出一次系统负载(负载是系统性能的基础重要指标)情况。
# cat while.sh
#!/bin/bash
while true #while true表示条件永远为真,因此会一直运行,像死循环一样,我们称之为守护进程
do
uptime
sleep 5 #休息5秒后继续循环,控制循环的频率
done
# sh while.sh
04:00:01 up 52 days,5:44,2 users,load average: 0.64, 0.75, 1.83
04:00:06 up 52 days,5:45,2 users,load average: 0.67, 0.75, 1.83
范例2:将负载值追加到文件里
# cat while.sh
#!/bin/bash
while [ 1 ] #注意[ ]里面两端要有空格,true和1都表示条件永远成立
do
uptime >>/tmp/uptime.log #将负载值输入到log文件里
usleep 5000000 #单位为微秒,其实就是5秒
done
# sh while.sh &
15782
# tailf /tmp/uptime.log #使用tailf命令实时观察输出结果
04:10:37 up 52 days,5:55,2 users,load average: 0.60, 0.63, 1.22
04:10:42 up 52 days,5:55,2 users,load average: 0.63, 0.64, 1.22
04:10:47 up 52 days,5:55,2 users,load average: 0.90, 0.69, 1.23
04:10:52 up 52 days,5:55,2 users,load average: 0.91, 0.70, 1.23
范例3:计算从1加到100之和(用1+2+3+...+100的方法)
# cat jisuan.sh
#!/bin/bash
i=1
sum=0
while ((i
页:
[1]