shell 死循环if判断_Shell死循环

例1: 运行脚本后会自动加载firefox浏览器,并打开指定网页。如果用户关闭firefox,脚本会再次自动重新打开firefox。

如需结束循环,中止t2.sh进程即可。注意不要同时执行两个t1.sh脚本,否则……

若事先不知道脚本名,也可以通过类似于"pstree | grep firefox"的命令获知其进程树,找到其父进程名killall掉即可。

或者使用类似于"ps -elf | grep firefox | grep -v grep| awk '{print $5}'"的命令,查找firefox相关进程的父进程pid,选最小的一个干掉。

文件名:t1.sh

测试方式:执行sh t1.sh &

文件内容:

#!/bin/bash

while true

do

/usr/bin/firefox http://www.baidu.com

wait

done

###########################################################################

例2: 运行脚本后会检查、校正eth0网卡的IP设置等参数,并检查web程序(80端口)是否正常监听,否则自动加载默认的httpd服务。以后每隔5分钟检查一次。

文件名:t2.sh

测试方式:sh t2.sh &

文件内容:

#!/bin/bash

while true

do

NOWIP=`/sbin/ifconfig eth0 | grep 'inet addr' | cut -d : -f2 | awk '{print $1}'`

if [ $NOWIP != '192.168.2.20' ] ; then

/sbin/ifconfig eth0 192.168.2.20/24

/sbin/ifconfig eth0 up

/sbin/route add default gw 192.168.2.1

echo -e 'nameserver 192.168.2.1\nnameserver 202.106.0.20' > /etc/resolv.conf

fi

PNUM=`netstat -anptl | grep :80 | wc -l`

if [ $PNUM  -eq 0 ] ; then

/etc/init.d/httpd start

fi

sleep 5m

done

补充:

while语句

语法:

while 命令/条件

do

语句

done

机制:如果while后的命令执行成功,或条件真,则执行do和done之间的语句,执行完成后,再次判断while后的命令和条件;如果while后的命令执行失败,或条件为假,循环结束

例如:

while date

do

echo “aa”

done

特例:无条件循环

while true

do

语句

done

while可以用作无穷循环,很多地方都用到无穷循环。一个无穷循环如下所示:

while(true) {

循环内容;

...

}

无穷循环可以由自己循环中的某个条件式来结束。下面是一个循环内部终止的例子:

while(true) {

语句;

if(条件式)

break;  // 跳离循环

...

}

http://www.cublog.cn/u1/40349/showart_392705.html

http://wanghai.blog.51cto.com/770518/160642

http://edu.codepub.com/2009/0531/5100.php

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值