Ho difficoltà a capire come controllare correttamente da uno script bash se l'ora corrente è tra le 23:00 e le 06:30. Sto cercando di eseguire un ciclo infinito per controllare l'ora e fare qualcosa se l'intervallo di tempo è compreso tra le 23:00 e le 6:30. Ecco cosa ho scritto finora, che non funziona il giorno successivo:
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 &
}
Cosa sto facendo di sbagliato?