我需要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