1. 程式人生 > >shell中日期循環的方式

shell中日期循環的方式

方式 markdown nds ren class sta bin one ear

第一種

# 這裏的例子以周為循環
!/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中日期循環的方式