Tôi đang chạy vòng lặp này để kiểm tra và in một số thứ mỗi giây. Tuy nhiên, vì các tính toán có thể mất vài trăm mili giây, thời gian in đôi khi bỏ qua một giây.
Có cách nào để viết một vòng lặp như vậy mà tôi được đảm bảo để có được một bản in mỗi giây không? (Tất nhiên, với điều kiện là các tính toán trong vòng lặp mất ít hơn một giây :))
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: see <sched.h>
và các trang được liên kết từ đó), về cơ bản bạn không thể có các đảm bảo theo thời gian thực của biểu mẫu này.