Je lance cette boucle pour vérifier et imprimer certaines choses à chaque seconde. Cependant, comme les calculs prennent peut-être quelques centaines de millisecondes, le temps imprimé saute parfois une seconde.
Existe-t-il un moyen d'écrire une telle boucle que je sois assuré d'obtenir une impression à chaque seconde? (À condition bien sûr que les calculs dans la boucle prennent moins d'une seconde :))
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: voir <sched.h>
et les pages liées à partir de là), vous ne pouvez en principe pas avoir de garanties en temps réel de ce formulaire.