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
保持傻,保持饿