Estou executando esse loop para verificar e imprimir algumas coisas a cada segundo. No entanto, como os cálculos demoram talvez algumas centenas de milissegundos, o tempo impresso às vezes pula um segundo.
Existe alguma maneira de escrever um loop que eu garanta uma impressão a cada segundo? (Desde que, é claro, que os cálculos no loop demorem menos de um 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: consulte <sched.h>
e páginas vinculadas a partir daí), você basicamente não pode ter garantias em tempo real deste formulário.