Ich muss nach der aktuellen Uhrzeit suchen und das Skript abbrechen, wenn es nicht die richtige Tageszeit ist, zu der ich es ausführen soll. Wenn es von jemand anderem ausgeführt wird, sollte es ebenfalls abgebrochen werden.
Beispiel: Ich muss mein Skript nur ausführen, wenn es zwischen 22 Uhr und 2 Uhr morgens gestartet wird (ein 4-Stunden-Fenster).
Derzeit mache ich Folgendes. Nehmen Sie sich Zeit date +%k%M
und vergleichen Sie mit fest codierten Zahlen
#!/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
Ich würde gerne wissen, ob es eine andere effiziente Methode für den Zeitvergleich in sh
oder gibt 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
.