Shell 如何计算Sun OS上的日期时间差?
[SunOS]如何找出日期和时间的差异 日期1:2017-01-02 17:24:33 日期2:2017-01-03 22:55:02Shell 如何计算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,不包括早期版本
回答:1770分钟Sun OS和Solaris都不是Linux;本机的
date
命令没有GNUdate
,AFAIK的功能。在Linux上如何实现这一点可能很明显,但在POSIX上如何实现这一点并不明显,POSIX大约是Sun OS或Solaris支持的
你应该找到有用的。它建议,如果您使用的是足够新的Solaris版本(我认为是Solaris 11,不包括早期版本),那么您可以使用gdate
访问GNUdate
的功能。然后,您可以将两个给定的日期/时间值转换为“自历元起的秒数”,减去它们,然后除以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之前,请阅读、和。祝你好运