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


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

 shell脚本如下:

#!/bin/bash

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

 

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

测试结果:

[root@master shell]# sh t.sh 
20180123
20180124
20180125
20180126
20180127
20180128
20180129
20180130
20180131
20180201
20180202
20180203

。。。

20180719
20180720
20180721
20180722
[root@master shell]# 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM