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