Ich führe diese Schleife aus, um einige Dinge jede Sekunde zu überprüfen und auszudrucken. Da die Berechnungen jedoch einige Hundert Millisekunden dauern, überspringt die Druckzeit manchmal eine Sekunde.
Gibt es eine Möglichkeit, eine solche Schleife zu schreiben, bei der ich garantiert jede Sekunde einen Ausdruck bekomme? (Vorausgesetzt natürlich, dass die Berechnungen in der Schleife weniger als eine Sekunde dauern :))
while true; do
TIME=$(date +%H:%M:%S)
# some calculations which take a few hundred milliseconds
FOO=...
BAR=...
printf '%s %s %s\n' $TIME $FOO $BAR
sleep 1
done
sched(7)
API aufruft (POSIX: siehe <sched.h>
und von dort verknüpfte Seiten), können Sie im Grunde keine Echtzeitgarantien dieser Form haben.