zoukankan      html  css  js  c++  java
  • 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 nameserver 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
  • 相关阅读:
    PHP学习当中遗漏的知识点
    sql必知必会(第四版) 学习笔记
    servlet 笔记
    sql server 快捷键
    233
    第 四 课 数据类型
    第三课 go语言基础语法
    第二课 go语言的结构
    第 1 课 Go 简介
    linux 学习 查看文件占用空间大小
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4204091.html
Copyright © 2011-2022 走看看