首页 > 作文

shell脚本之十:while循环及应用实践

更新时间:2023-04-03 22:27:12 阅读: 评论:0

十、while循环及应用实践

(一)while循环语法

while 循环语法:while <条件表达式>do  指令done

(二)范例1:

每隔2s输出系统负载情况。

[root@centos6-kvm3 scripts]# cat 10-01.sh #!/bin/bashwhile truedo uptime >>/tmp/oldboy.log sleep 2done[root@centos6-kvm3 scripts]# 

1、脚本执行的方法

用法说明sh while1.sh &把脚本while1.sh放到后台执行(后台运行脚本时常用)*nohup while1.sh &使用nohup 把脚本while.sh放到后台执行。ctl+c停止执行当前脚本或者任务ctl+z暂停执行当前脚本或者任务bg把当前脚本或者任务放到建筑学专业大学排名后台执行,bg可以IGCSE理解为backroundfg把当前脚本或者任务拿到前台执行,如果有多个任务,可以使用fg加任务编号调出对应脚本任务,如fg 2,调出第二个脚本任务,fg可以理解为frontgroundjobs查看当前执行的脚本或者任务kill关闭执行的脚本任务,即以“kill %任务编号”的形式关闭脚本,这个任务标号,可以通过jobs获得。

后台运行 & ,nohup,screen(运维人员)

常用命令:

kill,killall,pkill :杀掉进程ps:查看进程。pstree:显示进程状态树。top:显示进程。renice:改变优先权。nohup:用户退出系统之后继续工作。pgrep:查找匹配条件的进程。strace:跟踪一个进程的系统调用情况。ltrace:跟踪进程调用库函数的情况。

(三)范例2:

请使用while循环对下面的脚本进行修改,使得当执行脚本时,每次执行完脚本以后不退出脚本了,而是继续提示用户输入。

[root@centos6-kvm北京大学历任校长3 scripts]# cat 10-02.sh#!/bin/bashwhile truedoread -t 15 -p "plea input two number:" a b        expr $a + $b + 2 &>/dev/null        if [ $? -ne 0 ]        then           echo "usage:$0 plea input two number."           continue        fi        if [ -z "$b" ]        then           echo "usage:$0 plea input two number."           continue        fiecho "a-b=$(($a-$b))"echo "a+b=$(($a+$b))"echo "a*b=$(($a*$b))"echo "a/b=$(($a/$b))"echo "a**b=$(($a**$b))"echo "a%b=$(($a%$b))"done[root@centos6-kvm3 scripts]# 

(四)范例3:

猜数字游戏。首先让系统随机生成一个数字,给这个数字定一个范围(1-60),让用户输入猜的数字,对输入进行判断,如果不符合要求,就给予高或低的提示,猜对后则给出猜对用的次数,请用while语句实现。

[root@centos6-kvm3 scripts]# cat 10-04.sh#!/bin/bashrandom=$((random%60))count=0while truedo  read -p "plea input a num:" num  ((count+=1))  if [ $random -l强调句型t $num ]  then     echo "你猜大了"  elif [ $random -gt $num ]  then     echo "你猜小了"   el     echo "你猜对了,nb!共计猜了${count}次!"     exit 1  fi  done[root@centos6-kvm3 scripts]# 

(五)范例4:

分析apache访问日志(access_2010-12-8.log),把日志中每行的访问字节数对应字段数字相加,计算出总的访问量。

[root@centos6-kvm3 scripts]# cat 10-05.sh #!/bin/bashsum=0awk '{print $10}' access_2010-12-8.log | grep -v - >./oldboy.logwhile read linedo  ((sum=sum+line))done <./oldboy柳梢青送卢梅坡.logecho $sum[root@centos6-kvm3 scripts]# sh 10-05.sh1380681

本文发布于:2023-04-03 22:27:11,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/c342d81cc86efaf3532639a5f0710f66.html

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

本文word下载地址:shell脚本之十:while循环及应用实践.doc

本文 PDF 下载地址:shell脚本之十:while循环及应用实践.pdf

标签:脚本   进程   后台   范例
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图