博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell下日期循環
阅读量:5948 次
发布时间:2019-06-19

本文共 854 字,大约阅读时间需要 2 分钟。

hot3.png

datebeg="2012-04-01"dateend="2012-05-30"beg_s=`date -d "$datebeg" +%s`end_s=`date -d "$dateend" +%s`while [ "$beg_s" -le "$end_s" ];do     day=`date -d @$beg_s +"%Y-%m-%d"`;     beg_s=$((beg_s+86400));done

在Shell下,可以通過如下命令設置指定日期往前或者往後N天

date -d "$KNOW_DATE UTC +N days" +"%Y%m%d"

date -d "$KNOW_DATE UTC -N days" +"%Y%m%d"

由此可得到下面這種日期循環的代碼:

b=`date -d "$BEGIN_DATE" +"%Y%m%d"`

e=`date -d "$ENDBEGIN_DATE" +"%Y%m%d"`

#前面兩條語句的作用是將日期轉換成yyyyMMdd這種格式,後面要將它們當成數字來比較

while [ $b -le $e ]; do

  #do something here

  b=`date -d "$b UTC +1 day" +"%Y%m%d"`

done

這種方式可以按隔N天的方式,也可以換成其他時間維度

另外一種是化成秒再計算,代碼如下:

b=`date -d $BEGIN_DATE" +"%s"`

e=`date -d "$END_DATE" +"%s"`

while [ $b -le $e ]; do

#do something here

d=`date -d “1970-01-01 UTC "$b" seconds" +”%Y%m%d"`

b=`expr $b + 86400`  #也可以用:(($b+=86400))或者let 'b+=86400'

done

转载于:https://my.oschina.net/swearyd7/blog/206442

你可能感兴趣的文章
转:Eclipse自动补全功能轻松设置
查看>>
mysql update操作
查看>>
Robots.txt - 禁止爬虫(转)
查看>>
MySQL数据库
查看>>
Mysql 监视工具
查看>>
SSH详解
查看>>
ASM概述
查看>>
【290】Python 函数
查看>>
godaddy域名转发(域名跳转)设置教程
查看>>
silverlight学习布局之:布局stackpanel
查看>>
理解并自定义HttpHandler
查看>>
从前后端分离到GraphQL,携程如何用Node实现?\n
查看>>
JavaScript标准库系列——RegExp对象(三)
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
oracle中create table with as和insert into with as语句
查看>>
kafka连接异常
查看>>
11g废弃的Hint - BYPASS_UJVC
查看>>
为什么工业控制系统需要安全防护?
查看>>
Mongodb部署记录[3]-主从搭建
查看>>
hive sql操作
查看>>