例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

shell 死循环的更多相关文章

  1. shell死循环脚本示例

    1.设计一个脚本,监控远程的一台机器(假设ip为192.168.0.28)的存活状态,当发现宕机时发一封邮件给你自己. 提示:1. 你可以使用ping命令   ping -c10 www.baidu. ...

  2. 【运维技术】shell脚本实现线程挂掉,自动重启功能

    由于分布式系统的流行,服务器上面部署的项目都是多实例的.而我又希望有一个功能,当服务器出现异常情况能够自动重启实例. 所以我想到了使用shell脚本监控实例进程id,如果不存在的话,就重启对应的实例. ...

  3. shell脚本编程之“最简单的死循环”【转】

    转自:http://blog.chinaunix.net/uid-23046336-id-3475462.html 在linux下编程的程序猿都知道shell脚本,就算你不怎么熟悉,也应该听过的吧!那 ...

  4. shell编程之while死循环

    原文 在linux下编程的程序猿都知道shell脚本,就算你不怎么熟悉,也应该听过的吧!那在shell脚本中的死循环该怎么写呢? 对于熟悉C语言的猿人们来说,最简单的死循环应该这样写: ------- ...

  5. shell实现死循环

    参考自http://codingstandards.iteye.com/blog/780524 .while true do command; done .while : do command; do ...

  6. shell脚本死循环检查是否有特定的路由,若存在进行删除操作

    while [ 1 ] do tun0_route=`ip route |grep -ci "100.100.80.0"` if [ $tun0_route -eq 0 ];the ...

  7. shell脚本死循环判断nginx日志reqest_time时间大于3秒是否增加,若增加发送相关日志信息到开发人员

    #!/bin/bash while [ 1 ] do pre_request_time_count=`cat /var/log/nginx/access.log |awk '{print $NF}'| ...

  8. Linux shell脚本编程(三)

    Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...

  9. shell编程:定义简单标准命令集

    shell是用户操作接口的意思,操作系统运行起来后都会给用户提供一个操作界面,这个界面就叫shell,用户可以通过shell来调用操作系统内部的复杂实现,而shell编程就是在shell层次上进行编程 ...

随机推荐

  1. 抓取锁的sql语句-第五次修改

    CREATE OR REPLACE PROCEDURE SOLVE_LOCK AS V_SQL VARCHAR2(3000); --定义 v_sql 接受抓取锁的sql语句V_SQL02 VARCHA ...

  2. Swift - 30 - 可变参数

    //: Playground - noun: a place where people can play import UIKit // 可变参数一定要放在所有定义参数的最后面, 和其他参数的定义方式 ...

  3. WPF Binding

    winform有binding, WPF也有binding,区别在哪呢?这里暂时不提.以前也检查接触WPF binding, 但为什么过段时间就忘记了呢? 可能主要原因自己的知识体系不够完善吧,下面我 ...

  4. PHP json的插入和解析在数据库中的操作

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. PHP中往数据库中存储json数据在项目开发中也经常遇到,下面我就 ...

  5. Java学习----Java程序结构

    1.什么是类 在源文件中程序员自己定义的通过class关键字,自己给类名这样的定义的一个类,而类里包含一个或多个方法 2.什么是源文件 由程序员使用java语言编写的以.java为结尾的一个文件 3. ...

  6. javascript获得浏览器工作区域的大小

    浏览器的窗口发生变化时会执行window.onresize方法,通过这个方法我们可以获得到浏览器工作区域的大小: window.onresize=function(){ bodyHeight = wi ...

  7. Bootstrap中的 Typeahead 组件

    Bootstrap 中的 Typeahead 组件其实就是嵌入到其中的typeahead.js插件,可以完成输入框的自动匹配功能,在通过一些人工的调整基本可以胜任所有的匹配功能和场景,下面介绍下简单的 ...

  8. apache静态文件配置

    开发环境配置 需要下面几个步骤 1. 在app目录下创建static目录,将静态文件和相关文件夹放到此目录下,如your_app/static/img等 2. 确保settings.py中的INSTA ...

  9. CodeForces 546C(队列)

    CodeForces 546C Soldier and Cards Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I ...

  10. MVC linq语法分页

    分页效果图: 表格下面的分页按钮样式是我自己做的一个样式,这4个按钮都是用同一张图片:这张图片是用ps做的. 接下来我们说一下怎么去做这个样式 第一css代码: ._HomePage,._Previo ...