ฉันใช้วงนี้เพื่อตรวจสอบและพิมพ์บางสิ่งทุกวินาที อย่างไรก็ตามเนื่องจากการคำนวณอาจใช้เวลาสักสองสามร้อยมิลลิวินาทีเวลาที่พิมพ์จึงข้ามหนึ่งวินาที
มีวิธีใดที่จะเขียนลูปที่ฉันรับประกันว่าจะได้รับผลงานพิมพ์ทุกวินาทีหรือไม่? (แน่นอนว่าการคำนวณในลูปนั้นใช้เวลาน้อยกว่าหนึ่งวินาที :))
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: ดู<sched.h>
และหน้าเว็บที่เชื่อมโยงจากที่นั่น) โดยทั่วไปคุณจะไม่สามารถรับประกันแบบฟอร์มตามเวลาจริงได้