我有一個腳本,在後臺運行,並有一堆循環中檢查的東西,並根據這些檢查做的事情。因爲現在我有一個大的主循環,每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