需求:從當前時間前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]#