Devo controllare l'ora corrente e interrompere lo script se non è l'ora del giorno corretta dovrei eseguirlo. Inoltre, se qualcun altro lo esegue, dovrebbe interrompere.
Ad esempio: ho bisogno che il mio script venga eseguito solo se viene avviato tra le 22:00 e le 2:00 (una finestra di 4 ore).
Attualmente sto facendo quanto segue. Prendendo il tempo con date +%k%M
e confrontando con i numeri codificati
#!/bin/sh
currTime=`date +%k%M`
check_time_to_run()
{
tempTime=$1
if [ $tempTime -gt 200 -a $tempTime -lt 2200 ]; then
echo "Time is between 2 AM and 10 PM. Aborting."
exit 1
else
echo "Time is after 10 PM and before 2 AM. Running normally."
fi
}
check_time_to_run $currentTime
Vorrei sapere se esiste un altro metodo efficace per quanto riguarda il confronto temporale in sh
o bash
?
currTime=$(date +%s); lower=$(date +%s --date="2:00"); upper=$(date +%s --date="22:00"); if [$currTime -gt $lower -a $currTime -lt $upper]; then
...
date +%s
.