สรุปคำสั่งหลัก
sleep เวลาหน่วยเช่นsleep 5sหยุด 5 วินาที- หน่วย: s=วินาที, m=นาที, h=ชั่วโมง, d=วัน
- ดูรายละเอียด:
man sleep
คำสั่ง sleep ใช้เดี่ยวไม่ค่อยมีประโยชน์ แต่ในสคริปต์ (script) มีประโยชน์มาก เช่น หยุดรอให้คำสั่งอื่นเสร็จ, หน่วงเวลาระหว่าง retry, หรือทำนาฬิกานับถอยหลัง
ตัวอย่างการใช้งานจริง
สคริปต์คัดลอกไฟล์ที่ดาวน์โหลดจากเซิร์ฟเวอร์อื่น ไม่ควรเริ่มคัดลอกจนกว่าจะดาวน์โหลดเสร็จ สคริปต์ดาวน์โหลดรันก่อน สคริปต์คัดลอกอาจมีลูปเช็คว่าไฟล์ครบ 50 ไฟล์หรือยัง
แทนที่จะเช็คซ้ำตลอดเวลา (กิน CPU) ให้ sleep หน่วงเวลา ระหว่างแต่ละรอบเช็ค → sleep เหมาะที่สุด
รูปแบบการใช้งาน
sleep 5s
หยุด 5 วินาที แล้วคืน prompt
รูปแบบ: sleep จำนวนหน่วย
- s - วินาที
- m - นาที
- h - ชั่วโมง
- d - วัน
หมายเหตุ: หน่วงหลายวัน ควรใช้ cron job (排程รันซ้ำ) แทนการรันสคริปต์ค้างพื้นหลังหลายวัน
ตัวเลขไม่ต้องเป็นจำนวนเต็ม ใช้ทศนิยมได้:
sleep 3.5s
ตัวอย่างสคริปต์: นาฬิกานับถอยหลัง (Countdown)
#!/bin/bash x=10 while [ $x -gt 0 ] do sleep 1s clear echo "$x seconds until blast off" x=$(( $x - 1 )) done
การทำงาน:
- ตั้ง x = 10
- while loop ทำงานตลอดที่ x > 0
- sleep 1s หน่วง 1 วินาทีแต่ละรอบ
- clear หน้าจอ, แสดงข้อความ, ลด x ลง 1
ไม่มี sleep สคริปต์จะวิ่งจบทันที ข้อความกระพริบไม่ได้อ่าน
Switches ของ sleep
sleep มี switch น้อย:
--helpแสดงช่วยเหลือ (เหมือนman sleep)--versionแสดงเวอร์ชัน, ลิขสิทธิ์, สัญญา, ผู้เขียน
ใช้ sleep หน่วงคำสั่งใน Terminal
พิมพ์คำสั่งหลายคำสั่งบรรทัดเดียว คั่นด้วย && ใส่ sleep ระหว่างทาง:
$ cd /mydirectory/ && sleep 3 && ls
ทำงาน:
cd /mydirectory/เปลี่ยนโฟลเดอร์sleep 3รอ 3 วินาที (ให้ cd เสร็จ)lsแสดงไฟล์ในโฟลเดอร์นั้น
ตัวอย่างง่ายๆ ประหยัดเวลาเล็กน้อย แต่คำสั่งยาวๆ หลายคำสั่ง จะสะดวกกว่าพิมพ์ทีละบรรทัดรอจบ