2015-11-13 52 views
0

要求是運行凌晨4點後的腳本,該腳本通過隨機的時間被調用,因此在腳本的開頭添加下面的代碼片段:固定時間Unix的當前時間的減法運算

while [ $(date +"%H%M%S") -lt 040000 ] 
do 
    curTime=$(date -u +"%H%M%S") 
    reqTime=040000 
    subTime=$(expr $reqTime - $curTime) 
    if [ $cntTime -ge 0 ] 
    then  
     sleep $cntTime 
    fi 
done 

它檢查curTime < 4AM,如果是這樣,它會從4AM減去curTime,並睡覺提醒時間(以秒爲單位)。但減法不會在幾秒鐘內發生,它是數字。

+0

你知道'at'和'cron'守護進程,它們是爲了在特定時間運行事物而設計的嗎? –

+0

它們是unix調度程序。 在我的情況下,調度發生在不同層次,腳本被不同的工作調用。所以,我不能在這裏使用cron。 – Lastwish

回答

0

如果你使用bash和GNU/Linux,

echo $((`date +%s` - `date -d 'today 04:00' +%s`)) 

給你秒,因爲04:00的同一天。