Potrzebuję serii poleceń lub pojedynczego polecenia, które śpi aż do następnego wystąpienia określonego czasu, takiego jak „4:00”.
Jak mam to zrobić?
at
Polecenie lub zadanie crona nie jest opcją, bo nie musi opuścić skrypt jestem obecnie.
Konkretny przypadek, o którym mówię, to skrypt działający na ekranie. Bardzo ważne jest, aby nie przerywać wykonywania skryptu przez sam skrypt, ponieważ istnieje wiele ważnych zmiennych, które są potrzebne w pewnym momencie skryptu. Skrypt nie zawsze powinien być wykonywany regularnie. Musi zostać wykonany w określonym czasie.
Byłoby bardzo szkodliwe, gdyby skrypt musiał utworzyć jakiekolwiek pliki lub inne zadania, takie jak cronjobs lub inne ekrany. To po prostu kwestia projektu.
Właśnie miałem niesamowity pomysł:
difference=$(($(date -d "4:00" +%s) - $(date +%s)))
if [ $difference -lt 0 ]
then
sleep $((86400 + difference))
else
sleep $difference
fi
Czy masz jakieś lepsze pomysły?
Więcej informacji zostanie dodanych na żądanie!
date -d
z date -j
i zamienić 4:00
z 0400
.