Korzystam z tej pętli, aby sprawdzać i drukować niektóre rzeczy co sekundę. Ponieważ jednak obliczenia mogą potrwać kilkaset milisekund, wydrukowany czas czasami przeskakuje o sekundę.
Czy jest jakiś sposób na napisanie takiej pętli, że mam gwarancję otrzymania wydruku co sekundę? (Oczywiście pod warunkiem, że obliczenia w pętli zajmą mniej niż sekundę :))
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)
interfejs API (POSIX: patrz <sched.h>
i strony z niego połączone), zasadniczo nie możesz mieć gwarancji tego formularza w czasie rzeczywistym.