相关疑难解决方法(0)

在Mac OS X shell脚本中从开始日期循环到结束日期

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)

macos bash shell date

13
推荐指数
1
解决办法
4019
查看次数

将 X 天添加到 BASH 中的特定日期

对 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 的情况有所不同。

macos bash date

2
推荐指数
1
解决办法
5347
查看次数

标签 统计

bash ×2

date ×2

macos ×2

shell ×1