如何从当前参考时间计算时间

我需要build立简单的ksh / bash scrip或Linux上的任何知道从参考时间计算时间的东西

当我inputdate命令如下:

date Wed Jul 17 18:13:27 IDT 2013 

要么

  [root@linux /var/tmp]# current_time=` date ` [root@linux /var/tmp]# echo $current_time Wed Jul 17 18:21:51 IDT 2013 

所以我在这里得到当前的date。

我需要的是从当前date算起10分钟,

所以在10分钟后,我会打印信息

  echo “sorry 10 min was ended“ 

如何从参考时间计算时间?

使用date +%s获取Unix时间 – 从00:00:00协调世界时(UTC)1970年1月1日星期四开始的秒数 – 然后使用算术扩展:

 current_time=$(date +%s) elapsed_time=$(( $(date +%s) - $current_time )) 

$elapsed_time是自$current_time以来的秒数。 然后你可以检查循环中的$elapsed_time > 600

编辑:为了完整性:

 if [[ $elapsed_time > 600 ]]; then echo "sorry 10 min was ended" fi 

这应该在bash和ksh中都有效。

bash有一个像内置计时器的东西。 参数$SECONDS被连续更新,从shell启动以来经过的秒数。 你可以赋值给这个变量,在这种情况下,它的值实际上是每秒递增的。

一些例子:

 $ SECONDS=0 $ sleep 10 $ echo $SECONDS 10 $ SECONDS=0 $ while (( SECONDS < 600 )); do > sleep 10 > done