OS X(Snow Leopard)上的日期函数没有像GNU版本那样的--date选项,我无法弄清楚如何在OS X上获得以下内容:
startdate=2010-01-01
enddate=2010-01-31
foldate="$startdate"
until [ "$foldate" == "$enddate" ]
do
# do something with the date here - like pass it as a parameter to a command
foldate=`/bin/date --date "$foldate 1 day" +%Y-%m-%d`
done
Run Code Online (Sandbox Code Playgroud)
解决了SiegeX的答案:
startdate=2010-01-01
enddate=2010-01-31
sDateTs=`date -j -f "%Y-%m-%d" $startdate "+%s"`
eDateTs=`date -j -f "%Y-%m-%d" $enddate "+%s"`
dateTs=$sDateTs
offset=86400
while [ "$dateTs" -le "$eDateTs" ]
do
date=`date -j -f "%s" $dateTs "+%Y-%m-%d"`
printf '%s\n' $date
dateTs=$(($dateTs+$offset))
done
Run Code Online (Sandbox Code Playgroud) 对 BASH 来说是全新的。提前道歉。
问题
我想将 X 天添加到特定日期。
代码
我发现date在 BASH 中检索当前日期。
我还发现我可以通过以下方式将 X 天添加到当前日期,
expiration_date=$ date -v +1d
Run Code Online (Sandbox Code Playgroud)
这使,
Tue Sep 26 20:28:13 CEST 2017
Run Code Online (Sandbox Code Playgroud)
这确实是写作日期加上X=1天数。
题
date我想插入一个特定的日期,而不是在上面的命令行中添加 X 天,例如 20/09/2017。
不要关心特定日期的格式。
换句话说:我如何进行以下工作,
expiration_date=$ '20/09/2017' -v +1d
Run Code Online (Sandbox Code Playgroud)
试过这个答案,但没有做我想要的。
编辑:不知道 OSX 的情况有所不同。