ให้while
ห่วงสภาพบูลดังกล่าวดังต่อไปนี้:
#!/bin/bash
while true; do
do_something && wait
done
สิ่งนี้จะดำเนินการซ้ำไปซ้ำมาจนกว่าทุบตีรับสัญญาณเพื่อยุติกระบวนการ ctrl+c
มักจะอยู่ในรูปแบบของ
คุณสามารถใช้watch
คำสั่งเพื่อเรียกใช้สคริปต์ซ้ำ ๆ ได้เช่นกัน ตัวอย่างเช่นนาฬิกาธรรมดาในเครื่อง bash ที่ใช้watch
อาจมีลักษณะดังนี้:
$ watch -t -n1 date +%T
-t
ตัวเลือกที่บอกwatch
จะไม่แสดงชื่อของกระบวนการที่กำลังทำงานอยู่ สิ่งนี้จะให้ผลลัพธ์ที่สะอาดของเฉพาะคำสั่งที่ถูกทำซ้ำ -n1
ตัวเลือกที่บอกดูที่จะทำซ้ำทุกn
วินาที ในกรณีนี้-n1
จะเป็นช่วงเวลา1
ที่สอง จากนั้นdate +%T
คำสั่งจะแสดงเวลา ณ เวลาที่คำสั่งเสร็จสิ้น การทำคำสั่งนี้จะให้นาฬิกาที่ใช้งานอยู่ในเครื่องของคุณ
และอีกวิธีหนึ่งที่ไม่ได้อยู่ในคำตอบอื่นใดก็คือการเรียกใช้ฟังก์ชันที่ไม่มีที่สิ้นสุด
do_something() { do_something }; do_something && wait
นี่เป็นหลักเหมือนกับ boolean while
loop โดยใช้การเรียกฟังก์ชันแบบเรียกซ้ำ
(แก้ไข) เพื่อรักษาทรัพยากรเครื่องของคุณไว้ในใจฉันได้เพิ่ม&& wait
เพื่อให้ทุกครั้งที่กระบวนการทำงานลูปจะ "รอ" จนกว่ากระบวนการนั้นจะเสร็จสิ้นด้วยสถานะออก 0 ก่อนการทำซ้ำครั้งถัดไป สิ่งนี้มีประโยชน์ในเชลล์สคริปต์แบบโต้ตอบ