加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 在shell脚本中添加计数器

发布时间:2020-12-15 19:35:06 所属栏目:安全 来源:网络整理
导读:我的shell脚本中有以下代码,如果没有找到任何文件,它将继续休眠。它睡了半个小时,但目前我没有任何计数器只能执行下面的代码20次,然后退出程序,如果文件仍然不在那里(意味着不要做任何事情20后检查退出完整脚本)。 什么是最好的方式来做这个问题?所以
我的shell脚本中有以下代码,如果没有找到任何文件,它将继续休眠。它睡了半个小时,但目前我没有任何计数器只能执行下面的代码20次,然后退出程序,如果文件仍然不在那里(意味着不要做任何事情20后检查退出完整脚本)。

什么是最好的方式来做这个问题?所以我也知道通过查看已经尝试了20次的电子邮件。

希望我很清楚

while true; do
  if /home/hadoop/latest/bin/hadoop fs -ls /apps/hdtech/bds/quality-rt/dt=$DATE_YEST_FORMAT2 then
       echo "Files Present" | mailx -s "File Present"  -r admin@host.com admin@host.com
       break
  else
       echo "Sleeping for half an hour" | mailx -s "Time to Sleep Now"  -r admin@host.com admin@host.com
       sleep 1800
  fi
done
以下是实现柜台的方法:
counter=0
while true; do
  if /home/hadoop/latest/bin/hadoop fs -ls /apps/hdtech/bds/quality-rt/dt=$DATE_YEST_FORMAT2 then
       echo "Files Present" | mailx -s "File Present"  -r admin@host.com admin@host.com
       exit 0
  elif [[ "$counter" -gt 20 ]]; then
       echo "Counter: $counter times reached; Exiting loop!"
       exit 1
  else
       counter=$((counter+1))
       echo "Counter: $counter time(s); Sleeping for another half an hour" | mailx -s "Time to Sleep Now"  -r admin@host.com admin@host.com
       sleep 1800
  fi
done

一些说明:

> counter = $((counter 1)) – 这是你如何增加一个计数器。在这种情况下,$ for counter是双括号内的可选项。> elif [[“$ counter”-gt 20]];那么 – 这检查$计数器是否不大于20.如果是这样,它输出适当的消息并突破你的while循环。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读