天天看點

秒級定時計劃

碰到一道面試題,每個10秒列印一次系統時間,投機取巧,弄成功了。

1

2

3

4

5

6

7

8

9

10

11

<code>$ </code><code>for</code> <code>i </code><code>in</code> <code>`</code><code>seq</code> <code>1 10`;</code><code>do</code> <code>date</code><code>;</code><code>sleep</code> <code>10 ;</code><code>done</code>

<code>2012年 08月 29日 星期三 08:51:32 CST</code>

<code>2012年 08月 29日 星期三 08:51:42 CST</code>

<code>2012年 08月 29日 星期三 08:51:52 CST</code>

<code>2012年 08月 29日 星期三 08:52:02 CST</code>

<code>2012年 08月 29日 星期三 08:52:12 CST</code>

<code>2012年 08月 29日 星期三 08:52:22 CST</code>

<code>2012年 08月 29日 星期三 08:52:32 CST</code>

<code>2012年 08月 29日 星期三 08:52:42 CST</code>

<code>2012年 08月 29日 星期三 08:52:52 CST</code>

<code>2012年 08月 29日 星期三 08:53:02 CST</code>

這樣做忽略了程式運作時間,不是很精确,是以能夠成功,唬下人。

另外,用while循環+sleep(usleep)可以實作秒級(微秒級)的任務。示例腳本如下

<code>while</code> <code>true</code>

<code>do</code>

<code>    </code><code>command</code>

<code>    </code><code>sleep</code> <code>1</code>

<code>done</code>

這樣做就會一緻循環下去,用if 給它加一個開關鎖

<code>    </code><code>if</code> <code>[ -f </code><code>/tmp/file</code><code>.lock ];</code><code>then</code>

<code>        </code><code>command</code>

<code>        </code><code>sleep</code> <code>1</code>

<code>    </code><code>else</code>

<code>        </code><code>exit</code> <code>0</code>

<code>    </code><code>fi</code>

想要停止循環,删除一個鎖檔案即可

本文轉自 紫色葡萄 51CTO部落格,原文連結:http://blog.51cto.com/purplegrape/976003,如需轉載請自行聯系原作者

繼續閱讀