Shell 如何计算Sun OS上的日期时间差?

Shell 如何计算Sun OS上的日期时间差?,shell,unix,sunos,Shell,Unix,Sunos,[SunOS]如何找出日期和时间的差异 日期1:2017-01-02 17:24:33 日期2:2017-01-03 22:55:02 回答:1770分钟Sun OS和Solaris都不是Linux;本机的date命令没有GNUdate,AFAIK的功能。在Linux上如何实现这一点可能很明显,但在POSIX上如何实现这一点并不明显,POSIX大约是Sun OS或Solaris支持的 你应该找到有用的。它建议,如果您使用的是足够新的Solaris版本(我认为是Solaris 11,不包括早期版本

[SunOS]如何找出日期和时间的差异

日期1:2017-01-02 17:24:33 日期2:2017-01-03 22:55:02


回答:1770分钟

Sun OS和Solaris都不是Linux;本机的
date
命令没有GNU
date
,AFAIK的功能。在Linux上如何实现这一点可能很明显,但在POSIX上如何实现这一点并不明显,POSIX大约是Sun OS或Solaris支持的

你应该找到有用的。它建议,如果您使用的是足够新的Solaris版本(我认为是Solaris 11,不包括早期版本),那么您可以使用
gdate
访问GNU
date
的功能。然后,您可以将两个给定的日期/时间值转换为“自历元起的秒数”,减去它们,然后除以60,以获得时间间隔内的分钟数

例如:

date1="2017-01-02 17:24:33"
date2="2017-01-03 22:55:02"
secs1=$(gdate -d "$date1" +'%s')
secs2=$(gdate -d "$date2" +'%s')
echo $(( ($secs2 - $secs1) / 60 ))
它的输出是
1770

$(…)
是POSIX外壳算法,KornShell和Bash也支持它。我不知道Solaris 11
/bin/sh
是否支持它。历史上,该shell是一个不支持
$(…)
的Bourne shell,更不用说
$(…)


如果您还没有
gdate
,请查阅交叉引用问题,以了解有关可从官方Solaris存储库安装到Solaris上的可选GNU软件的更多信息(请参阅)。

您想要哪一版本的Sun OS?Solaris 11、Solaris 10、一些旧版本的Solaris,还是说Sun OS 4.x?(Solaris版本x相当于版本5.x,IIRC。)在这里发布更多Qs之前,请阅读、和。祝你好运