Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用bash计算时间(秒)_Bash_Datetime - Fatal编程技术网

使用bash计算时间(秒)

使用bash计算时间(秒),bash,datetime,Bash,Datetime,我有一个cron作业,它每15分钟(12:00、12:15等)处理一次数据。我需要一个bash函数/脚本,它确定相对于当前时间到下一个处理周期的秒数。如果当前时间=“2016年15:09:00” 下一个处理周期为360秒。有什么想法吗?谢谢。获取自UNIX时代以来的当前时间(以秒为单位) $ now=$(date +%s) 然后计算这个值mod 900(900秒是15分钟),然后从900中减去它 $ echo $((900 - now % 900)) 获取自UNIX纪元以来的当前时间(以秒为

我有一个cron作业,它每15分钟(12:00、12:15等)处理一次数据。我需要一个bash函数/脚本,它确定相对于当前时间到下一个处理周期的秒数。如果当前时间=“2016年15:09:00”
下一个处理周期为360秒。有什么想法吗?谢谢。

获取自UNIX时代以来的当前时间(以秒为单位)

$ now=$(date +%s)
然后计算这个值mod 900(900秒是15分钟),然后从900中减去它

$ echo $((900 - now % 900))

获取自UNIX纪元以来的当前时间(以秒为单位)

$ now=$(date +%s)
然后计算这个值mod 900(900秒是15分钟),然后从900中减去它

$ echo $((900 - now % 900))

date
命令允许在
-d--date
选项之后提供日期<代码>日期也了解相关日期(例如,
+6分钟
+3天
,等等)。因此,如果您需要知道未来的
6
分钟是多少,您可以简单地使用
date-d“+6分钟”
来找到确切的时间。e、 g

$ date
Fri Jun 10 15:22:45 CDT 2016

$ date -d "+ 6 min"
Fri Jun 10 15:28:47 CDT 2016

date
命令允许在
-d--date
选项之后提供日期<代码>日期也了解相关日期(例如,
+6分钟
+3天
,等等)。因此,如果您需要知道未来的
6
分钟是多少,您可以简单地使用
date-d“+6分钟”
来找到确切的时间。e、 g

$ date
Fri Jun 10 15:22:45 CDT 2016

$ date -d "+ 6 min"
Fri Jun 10 15:28:47 CDT 2016

怎么样
date-d“+6分钟”
怎么样
date-d“+6分钟”
我本来想发布一些类似的东西,但是被时区缠住了——要知道,epoch是UTC,如果你在某个奇怪的时区,用3600秒来代替,你可能会关机。但在大多数情况下,这已经足够好了。要找到下一个15分钟的时间:
date-d“@$((现在=$(日期+%s),现在+(900现在%900))”++%H:%M
我本来想发布一些类似的东西,但被时区缠住了——请注意,epoch是UTC,如果你在某个奇怪的时区,用3600秒之类的时间代替,你可能会离开。但在大多数情况下,这已经足够好了。要查找下一个15分钟的时间:
date-d“@$((现在=$(日期+%s),现在+(现在900%900))”++%H:%M
我认为这仅由GNU date支持我认为这仅由GNU date支持