码迷,mamicode.com
首页 > 系统相关 > 详细

Linux shell date 按照时间片段进行循环

时间:2014-12-25 19:58:21      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

记得曾经写脚本按照天为单位进行循环,循环的其实日期可以是任何一天,像这样:

 1 START_DAY=$(date -d "$TODAY -1days" +%Y%m%d);
 2 
 3 END_DAY=$(date -d "$TODAY -${cycle}days" +%Y%m%d);
 4 
 5 for((;$END_DAY<=$START_DAY; END_DAY=$(date -d "$END_DAY +1days" +%Y%m%d)))
 6 
 7 do
 8 
 9   ...
10 
11 done
$TODAY是外界传入的时间参数,比如20141222;
cycle是一个整数,表示希望循环的天数,比如一个月 30。
然后再循环的时候对END_DAY每次加一天,加够30次后,循环终止。

现在突然需要按照10分钟的时间片段循环。
本以为`date -d "201412021311 +10minutes" +%H:%M`这样的方式可以凑效的,却发现这样写不行。试来试去,写作这样
`date -d "20141202 1311 +10minutes" +%H:%M`才凑效,感觉这样很奇葩。。。

改造了一下,只在一天内进行循环
 1 startpoint=0000;
 2 endpoint=0010;
 3 
 4 for((i=1;i<=144;i++))
 5 do
 6 startpoint_format=`date -d "$startpoint" +%H:%M;`
 7 endpoint_format=`date -d "$endpoint" +%H:%M;`
 8 ...
 9 startpoint=`date -d "$startpoint +10minutes" +%H%M;`
10 endpoint=`date -d "$endpoint +10minutes" +%H%M;`
11 done

这样看来还不错:)

还可以按照时间戳增减来做循环,没有这个看着舒心:)

Linux shell date 按照时间片段进行循环

标签:

原文地址:http://www.cnblogs.com/yanglongbit/p/4185220.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!