碰到一道面试题,每个10秒打印一次系统时间,投机取巧,弄成功了。
1
2
3
4
5
6
7
8
9
10
11
|
$
for
i
in
`
seq
1 10`;
do
date
;
sleep
10 ;
done
2012年 08月 29日 星期三 08:51:32 CST
2012年 08月 29日 星期三 08:51:42 CST
2012年 08月 29日 星期三 08:51:52 CST
2012年 08月 29日 星期三 08:52:02 CST
2012年 08月 29日 星期三 08:52:12 CST
2012年 08月 29日 星期三 08:52:22 CST
2012年 08月 29日 星期三 08:52:32 CST
2012年 08月 29日 星期三 08:52:42 CST
2012年 08月 29日 星期三 08:52:52 CST
2012年 08月 29日 星期三 08:53:02 CST
|
这样做忽略了程序运行时间,不是很精确,所以能够成功,唬下人。
另外,用while循环+sleep(usleep)可以实现秒级(微秒级)的任务。示例脚本如下
1
2
3
4
5
|
while
true
do
command
sleep
1
done
|
这样做就会一致循环下去,用if 给它加一个开关锁
1
2
3
4
5
6
7
8
9
|
while
true
do
if
[ -f
/tmp/file
.lock ];
then
command
sleep
1
else
exit
0
fi
done
|
想要停止循环,删除一个锁文件即可
本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/976003,如需转载请自行联系原作者