安排操作bash

时间:2012-12-12 15:07:54

标签: linux bash sleep

我需要每小时计算N次操作(相同的操作)。

目前我有我的操作,但我无法理解每小时N次执行:

 #!/bin/bash
 N=10; 
 # my operation
 sleep 3600/${N}

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

嗯,你现在写的方式,它只会执行一次“我的操作”,然后它会睡6分钟,然后退出。你需要的是围绕这两行的循环结构。 bash支持几种不同的循环结构,但对于这种情况,最简单的可能是:

#!/bin/bash
N=10
((delay=3600/N))
while true
do
  # do something
  sleep ${delay}
done

当然,在这种情况下没有规定终止循环,因此您必须退出^Ckill或其他内容。如果你只想让它运行一定次数,你可以使用for循环代替,或者你可以让它在每次迭代时检查某个文件的[不]是否存在,并在你运行时退出循环创建或删除该文件。最合适的方法取决于你真正想要做的事情的大局。