[已解決] ShellScript 往前日期迴圈印出問題
算是這題的衍伸題,家裡電腦 WSL 可以正常跑
#!/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
但公司電腦是 MAC 所以運行會碰到
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
餵谷狗試不出來,不知該如何解,感謝大家
試試看吧 ....
印出這個月一號
$date +%Y%m01
20210101
印出這四個月前一號
$date -j -f %Y%m%d -v-4m `date +%Y%m01` +%Y%m%d
20200901
還是你換個語言寫, 例如 python 這樣就沒跨平台問題