Estoy ejecutando este ciclo para verificar e imprimir algunas cosas cada segundo. Sin embargo, debido a que los cálculos toman unos pocos cientos de milisegundos, el tiempo impreso a veces se salta un segundo.
¿Hay alguna forma de escribir un bucle que me garantice obtener una copia impresa cada segundo? (Siempre que, por supuesto, los cálculos en el ciclo tomen menos de un segundo :))
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 (POSIX: ver <sched.h>
y páginas enlazadas desde allí), básicamente no puede tener garantías en tiempo real de este formulario.