如何在 bash 中获取自特定日期以来的天数

Asa*_*nke 1 shell solaris date

我需要找到自特定日期(假设是 01011980)以来今天的天数。想写一个在solaris上运行的shell脚本。

例如:uname -a -->SunOS test-1 5.11 11.3 sun4v sparc sun4v

到目前为止,我已经能够将当前日期格式化为所需的格式。

但无法找到一种方法将给定日期转换为可用于从当前日期减去以获取天数的格式。

我尝试了 date +%s 并传入所需的日期,但每次它都显示当前时间。

AG1> date +%s
1495427876
AG1> (date +%s -ud '2003-08-02 17:24:33' )
1495427877
AG1>
Run Code Online (Sandbox Code Playgroud)

我不想使用像 perl 这样的另一种语言,因为这将执行不同的机器,并且其他编程语言将成为障碍。

有人可以帮忙吗。

Mic*_* O. 5

使用算术评估:

echo $(( ($(date +%s) - $(date +%s -ud '2003-08-02 17:24:33')) / 3600 / 24 ))
Run Code Online (Sandbox Code Playgroud)

答案:5041。

编辑:由于问题是关于 SunOS 的,因此date该系统中的实用程序与 GNU 不同date,并且密钥-d不起作用。SunOS 中的 GNU 版本是/usr/gnu/bin/date.