Her saniye bazı şeyleri kontrol etmek ve yazdırmak için bu döngüyü çalıştırıyorum. Ancak, hesaplamalar birkaç yüz milisaniye sürdüğü için, yazdırılan süre bazen bir saniye atlar.
Her saniye bir çıktı almamın garantisi olduğu böyle bir döngü yazmamın bir yolu var mı? (Elbette, döngü içindeki hesapların bir saniyeden daha az sürmesi sağlanır :))
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'yi çağıran C kodu yazmıyorsanız (POSIX: bkz <sched.h>
ve oradan bağlantılı sayfalar), temel olarak bu formun gerçek zamanlı garantilerine sahip olamazsınız.