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

时间:2013-07-17 13:12:05

标签: linux bash shell date ksh

我需要在Linux上构建简单的ksh / bash脚本或其他任何知道从参考时间算起时间的脚本

当我输入date命令时如下:

   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  

所以我到达现在的日期。

我需要的是例如从当前日期算起10分钟,

所以10分钟后我会打印消息

     echo “sorry 10 min was ended“

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

2 个答案:

答案 0 :(得分:4)

bash类似于内置计时器。参数$SECONDS会随着shell启动后经过的秒数不断更新。您可以分配给此变量,在这种情况下,其值基本上每秒递增一次。

一些例子:

$ SECONDS=0
$ sleep 10
$ echo $SECONDS
10

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

答案 1 :(得分:1)

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

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。