我需要每小时计算 N 次操作(相同的操作)。
目前我有我的操作,但我无法理解每小时执行 N 次:
#!/bin/bash
N=10;
# my operation
sleep 3600/${N}
有什么建议吗?
好吧,按照你现在写的方式,它只会执行一次“我的操作”,之后它会休眠 6 分钟,然后退出。您需要的是围绕这两条线的循环结构。bash
支持几种不同的循环结构,但这种情况下最简单的可能是:
#!/bin/bash
N=10
((delay=3600/N))
while true
do
# do something
sleep ${delay}
done
当然,在这种情况下没有终止循环的规定,所以你必须用^C
orkill
或其他东西退出。如果您只希望它运行一定次数,则可以改用for
循环,或者您可以让它在每次迭代时检查某个文件的 [不] 存在,并在创建或删除该文件时退出循环. 最合适的方法取决于你真正想做的事情的大局。