我意识到我可以用一个小的C或Ruby程序来做这个,但我希望我的脚本尽可能少的依赖.
鉴于这一点,如何在OS X上的bash脚本中进行日期数学计算?我见过一个帖子(在另一个网站上)有人做了以下事情:
date -d "-1 day"
但这似乎不适用于OS X.
附录:
有几个人评论并回应说Ruby,Python,Perl等是OS X的标准配置.我熟悉这三种语言,并且可以轻松编写一个可以满足我想要的脚本.事实上,我已经有了用Ruby编写的脚本.
所以也许我应该澄清"外部依赖"的含义.我的意思是,我不希望我的bash脚本必须调用其外部的任何其他脚本.换句话说,我希望它使用OS X的vanilla安装中可用的一些实用程序,并且已经在路径上.
但是,它看起来不可能,所以我将不得不使用我的外部依赖:Ruby脚本.
$ date -v -1d
-d设置夏令时标志.
尝试使用man date获取更多信息.
因为MacOS基于BSD,而不是linux,命令实际上是:
date -v-1d
调整开关采用格式-v[+/-](number)[ymwdHMS]
.
例如,此OS X date命令将向输入字符串20160826添加14天(而不是当前时间):
date -j -f %Y%m%d -v+14d 20160826 +%Y%m%d