Ich habe Probleme zu verstehen, wie ich anhand eines Bash-Skripts richtig überprüfen kann, ob die aktuelle Zeit zwischen 23:00 und 06:30 Uhr liegt. Ich versuche, eine Endlosschleife auszuführen, um die Uhrzeit jetzt zu überprüfen und etwas zu tun, wenn der Zeitbereich zwischen 23 Uhr und 6:30 Uhr liegt. Folgendes habe ich bisher geschrieben, was am nächsten Tag nicht funktioniert:
fireup()
{
local starttime=$(date --date="23:00" +"%s")
local endtime=$(date --date="06:30" +"%s")
while :; do
local currenttime=$(date +%s)
if [ "$currenttime" -ge "$starttime" -a "$currenttime" -ge "$endtime" ]; then
do_something
else
do_something_else
fi
test "$?" -gt 128 && break
local currenttime=$(date +%s)
done &
}
Was mache ich falsch?