iT邦幫忙

0

[已解決] ShellScript 往前日期迴圈印出問題

前輩好,今日是1/26,我想for迴圈印出4個月前的第一天到3個月前的最後一天
期望結果如下,腦袋打結寫不太出來,求助一下,感謝

20200901
20200902
.
.
20200930
20201001
20201002
.
.
20201031

目前想到第一天
START_DATE=$(date +%Y%m01 -d "4 month ago")
20200901
但這樣如何做日期的增加到
20201031
謝謝

1 個回答

2
RRRRRRRRRRRR
iT邦新手 5 級 ‧ 2021-01-26 16:08:45
最佳解答
#!/bin/bash 

startdate=`echo $(date +%Y%m01 -d "4 month ago")`
enddate=`echo $(date  --date="$(date +%Y%m01 -d " -2 month ") -1 day" '+%Y%m%d' )`

curr="$startdate"
while true; do
    echo "$curr"
    [ "$curr" \< "$enddate" ] || break
    curr=$( date +%Y%m%d --date "$curr +1 day" )
done
vicentli iT邦新手 3 級 ‧ 2021-01-26 16:19:01 檢舉

神!超快就解出來!感謝感謝

我要發表回答

立即登入回答