我需要在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“
如何计算参考时间的时间?
答案 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。