0

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

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

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

有什么建议吗?

4

1 回答 1

1

好吧,按照你现在写的方式,它只会执行一次“我的操作”,之后它会休眠 6 分钟,然后退出。您需要的是围绕这两条线的循环结构。bash支持几种不同的循环结构,但这种情况下最简单的可能是:

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

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

于 2012-12-12T15:34:44.297 回答