Shell编程之用While简单写个守护进程

本文转载自微信公众号「Linux常用命令」,作者妖生。转载本文请联系Linux常用命令公众号。

为达拉特等地区用户提供了全套网页设计制作服务,及达拉特网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、达拉特网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

本节内容还是循环语法,第二个循环关键字:while。

while循环经常用于永久定时器,设置一个变量条件为真,则while中的命令可以永久执行下去。语法格式如下:

 
 
 
  1. while condition       ## condition为true,则循环执行下去
  2. do
  3.     command             ## 满足条件,则执行命令
  4. done

示例如下:

 
 
 
  1. [root@yaomm208 ~]# vi 004-while.sh  ##  编辑004-while循环脚本
  2. # !/bin/bash
  3. # filename:004-while.sh
  4. # author:linuxido.com
  5. LOCAL_TIME=$(date +"%Y-%m-%d %H:%M:%S")     # 获取时间并格式化
  6. while true
  7. do
  8.    sshd_count=`ps -ef | grep ssh | grep -v color | wc -l`       # 查看有多少ssh服务
  9.    if [ $sshd_count -lt 1 ]
  10.    then
  11.        echo $LOCAL_TIME  '没有找到ssh服务,重启该服务'
  12.        systemctl start sshd
  13.    else
  14.         echo $LOCAL_TIME 'ssh服务正常运行中...'
  15. fi
  16.    sleep 5  # sleep,Shell关键词。数字5表示沉睡5秒,每隔5秒检查一次
  17. done

运行脚本:

 
 
 
  1. [root@yaomm208 ~]# sh 004-while.sh      ##  运行004脚本
  2. 2021-06-06 09:52:23 ssh服务正常运行中...   ##  进入else分支,
  3. 2021-06-06 09:52:23 ssh服务正常运行中...   ##  我们发现时间打印的是第一次的时间
  4. ……

在上面的时间戳打印时,我们发现打印的时间并没有变化,一直是第一次打印的时间。怎么解决这个问题?简单,将时间戳命令变成函数就行了,将后面的《函数》小节学完同学们自己就能解决这个问题。

当前名称:Shell编程之用While简单写个守护进程
网页链接:http://www.shufengxianlan.com/qtweb/news21/301571.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联