shell循环(两个日期比较,改变某个特定日期来改变当前比较值)


需求:从当前时间前6个月开始执行某个语句,直到执行到当前日期的前一天。 

 shell脚本如下:

#!/bin/bash

yesterday=`date -d -1day +%Y%m%d`sixmonthsago=` date -d -6month +%Y%m%d` echo $sixmonthsagowhile [[ $sixmonthsago < $yesterday  ]]do         curDate=`date -d "+0 day $sixmonthsago" +%Y-%m-%d`                   echo curDate          sixmonthsago=`date -d "+1 day $sixmonthsago" +%Y%m%d`        echo $sixmonthsagodone

注意: sixmonthsago=`date -d "+1 day $sixmonthsago" +%Y%m%d`这个写法,在If条件语句下此写法不好用。

测试结果:

[root@master shell]# sh t.sh 201801232018012420180125201801262018012720180128201801292018013020180131201802012018020220180203

。。。

20180719201807202018072120180722[root@master shell]#