22
หมดเวลาคำสั่งในการทุบตีโดยไม่ต้องล่าช้าไม่จำเป็น
คำตอบสำหรับคำสั่งบรรทัดคำสั่งนี้เพื่อฆ่าคำสั่งโดยอัตโนมัติหลังจากระยะเวลาหนึ่ง เสนอวิธี 1 บรรทัดเพื่อหมดเวลาคำสั่งที่รันเป็นเวลานานจากบรรทัดคำสั่ง bash: ( /path/to/slow command with options ) & sleep 5 ; kill $! แต่เป็นไปได้ว่าคำสั่ง "ที่รันนาน" อาจเสร็จสิ้นเร็วกว่าการหมดเวลา (ลองเรียกมันว่าคำสั่ง "โดยปกติจะใช้เวลานาน แต่บางครั้งเร็ว" หรือคำสั่งtlrbsfเพื่อความสนุกสนาน) ดังนั้นวิธีการ 1 ซับที่ดีนี้มีปัญหาสองสามอย่าง อย่างแรกsleepคือไม่มีเงื่อนไขดังนั้นจึงกำหนดขอบเขตล่างที่ไม่พึงประสงค์ในเวลาที่ใช้เพื่อให้ลำดับเสร็จ พิจารณา 30s หรือ 2m หรือ 5m สำหรับการสลีปเมื่อคำสั่งtlrbsfเสร็จสิ้นใน 2 วินาที - ไม่พึงปรารถนาอย่างมาก ประการที่สองkillคือไม่มีเงื่อนไขดังนั้นลำดับนี้จะพยายามฆ่ากระบวนการที่ไม่ทำงานและสะอื้นเกี่ยวกับมัน ดังนั้น... มีวิธีการหมดเวลาคำสั่งโดยทั่วไปยาว - วิ่ง - แต่ - บางครั้ง - เร็ว …