Um ein Skript in der nächsten vollen Minute auszuführen, möchte ich sleep
mitteilen Befehl, bis zur nächsten vollen Minute zu schlafen. Wie kann ich das tun?
Akzeptierte Antwort:
Fragen Sie nach dem Datum in Sekunden:date +%s
und berechne den Rest der Teilung mit 60 (modulo:%
). Wenn Sie 60 minus Modulo berechnen, erhalten Sie die verbleibenden Sekunden zur nächsten vollen Minute. Sie können dies ändern, um bis zur nächsten vollen Stunde zu warten (ändern Sie 60 auf 3600).
sleep $((60 - $(date +%s) % 60)) &&
<yourscript>
Um nur bis zur nächsten vollen Minute zu schlafen, können Sie es sogar kürzer machen (ohne Modulo):
sleep $((60 - $(date +%S) )) &&
<yourscript>
Beachten Sie auch diese Frage und Antwort:Schlafen Sie bis zum nächsten Auftreten einer bestimmten Zeit.