2017-05-22 18 views
0

我需要找到一个自特定日期为今天的天数在特定日期的天数(比方说,它的01011980)。希望编写一个将在solaris上运行的shell脚本。外壳脚本 - 如何获得,因为在bash

防爆使用uname -a - >SunOS test-1 5.11 11.3 sun4v sparc sun4v

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

,但无法找到一种方法,一个给定的日期转换为可以在使用从当前日期减去获得的天数的格式。

我试图日期+%s和传递所需的日期,但每次都表明时间crrent。 AG1> date +%s 1495427876 AG1> (date +%s -ud '2003-08-02 17:24:33') 1495427877 AG1>

我不想使用Perl等其他语言,因为这将执行不同的机器,并且额外的编程语言将成为障碍。

谁能帮。

回答

1

使用算术评价:

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

答案:5041

编辑:因为这个问题是关于SunOS中,date效用在这个系统不同于GNU date,关键-d不工作。 SunOS的GNU版本是/usr/gnu/bin/date

+0

在我的情况,我得到0'回声$((($(日期+%S) - $(日期+%S -ud '2003-08-02十七点24分33秒'))/24分之3600 )) AG1>(date +%s -ud'2003-08-02 17:24:33') AG1>(date +%s -ud'2003-08-02 17:24:33 ') AG1>(日期+%S -ud '2003-08-02 17时24分33秒') 1495436166' ....它看起来像'(日期+%S -ud' 2003-08- 02'17:24:33')仍然给出与'(date +%s)'相同的数字,使得差异为0. – Asanke

+1

而不是'date',尝试'/ usr/gnu/bin/date'(http: //www.unix.com/solaris/124464-date-d-illegal-option-solaris.html) –

+0

另请参阅此处:https://stackoverflow.com/questions/17815327/equivalent-date-from-gnu-to -solaris –