我有一个脚本,在后台运行,并有一堆循环中检查的东西,并根据这些检查做的事情。因为现在我有一个大的主循环,每60秒运行一次,小循环不断执行一组命令,休眠一段时间,然后再循环。 Interval变量以秒为单位,但可以更改为分钟或小时。Bash比较时间使用日期
,因为它是现在的代码:
Small_Loop() {
while :; do
do things
sleep $Interval
done
}
Main_Loop() {
while :; do
test stuff and call functions based on those tests
sleep 60
done
}
所有小循环被调用后与他们“&”,最后的主回路被正常调用。由于这真的很难看,而且资源很重,我怎么能用日期比较来做到这一点?
它会得到军事格式的时间,12:00,加上间隔(如果间隔时间是一个小时,它会是13:00),Main_Loop可以简单地比较它们,直到它循环需要做点什么。
事情是这样的:
Update_Interval() {
#get the new interval in **:** format
}
Main_Loop() {
while :; do
if [ "`date +%R`" = "$Interval" ]; then
#do the Small_Loop's job
fi
Update_Interval
done
}
所以我想真正的问题是:如何使用日期比较来运行命令块每一个设定的时间间隔。
我发现我可以使用手表,但是可以在脚本内部使用它,而不会干扰它?
只需使用'cron'代替?除非需要“脚本运行时间”+间隔而不是间隔间隔。 –
为什么不使用cron?让cron按要求的时间间隔执行脚本。 – Jake
我不确定cron是否可以在所有的Android设备上使用,因此无法使用它,不过谢谢你的建议:) – BonBon