shell中日期循环的方式

Posted 木白的菜园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell中日期循环的方式相关的知识,希望对你有一定的参考价值。

第一种

# 这里的例子以周为循环
!/bin/bash

begin_date="20160907"
end_date="20170226"

while [ "$begin_date" -le "$end_date" ];
do
    year=${begin_date:0:4}
    week_of_year=$(date -d "$begin_date" +%W)
    echo $year, $week_of_year
    begin_date=$(date -d "${begin_date}+7days" +%Y%m%d)
done

第二种

# 这里的例子每天作为循环,并展示当天的前一天
#!/bin/bash

startDate=20160201
endDate=20160328
startSec=`date -d "$startDate" "+%s"`
endSec=`date -d "$endDate" "+%s"`
for((i=$startSec;i<=$endSec;i+=86400))
do
    current_day=`date -d "@$i" "+%Y%m%d"`
    one_day_ago=`date -d "$current_day yesterday" +%Y%m%d`
    echo "current_day:${current_day}, yesterday:${one_day_ago}"
done

以上是关于shell中日期循环的方式的主要内容,如果未能解决你的问题,请参考以下文章

linux shell脚本的循环下载

shell if 语句

shell 中可以for 循环的时间加减日期格式

shell 脚本 片段

linux 按日期循环执行shell命令 补充历史数据

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销