Saya menjalankan loop ini untuk memeriksa dan mencetak beberapa hal setiap detik. Namun, karena perhitungan mungkin memerlukan beberapa ratus milidetik, waktu yang dicetak terkadang melompati satu detik.
Apakah ada cara untuk menulis perulangan sehingga saya dijamin akan mendapatkan hasil cetak setiap detik? (Asalkan, tentu saja, bahwa perhitungan dalam loop memakan waktu kurang dari satu detik :))
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: lihat <sched.h>
dan halaman-halaman yang ditautkan dari sana), Anda pada dasarnya tidak dapat memiliki jaminan real-time dari formulir ini.