13544870125 发表于 2018-8-22 11:33:57

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]
查看完整版本: Shell笔记7——while和until循环的应用实践