เมื่อเขียน Shell Script บางครั้งคุณต้องการให้สคริปต์ "รอ" เป็นจำนวนวินาทีก่อนดำเนินการต่อ — เช่น รอให้ Process อื่นเสร็จสิ้น หรือรอ قبلลองใหม่หลังคำสั่งล้มเหลว
แก้ได้ง่ายๆ ด้วยคำสั่ง sleep
วิธีใช้คำสั่ง Bash Sleep
sleep เป็นคำสั่งที่ยืดหยุ่นและเรียบง่าย ไวยากรณ์: sleep N — หยุดนิ่งเป็นเวลา N วินาที โดย N เป็นจำนวนเต็มบวก หรือทศนิยมก็ได้
ตัวอย่างพื้นฐาน
echo "Hello there!"
sleep 2
echo "Oops! I fell asleep for a couple seconds!"
ผลลัพธ์: ข้อความแรกแสดง → หยุด 2 วินาที → ข้อความที่สองแสดง
ใช้ทศนิยมได้: sleep .8 หยุด 0.8 วินาที (800 มิลลิวินาที)
ข้อควรระวังเมื่อใช้ Sleep
หน่วยเวลาค่าเริ่มต้นคือวินาที — ไม่ต้องระบุหน่วย
บนบางระบบ (BSD, macOS) รองรับ เฉพาะวินาที เท่านั้น แต่ Unix-like อื่นๆ รองรับหน่วยเพิ่มเติม:
s— วินาที (Default)m— นาทีh— ชั่วโมงd— วัน
ใช้หลายอาร์กิวเมนต์ได้ — ระบบจะรวมเวลาทั้งหมด:
sleep 2m 30s # หยุด 2 นาที 30 วินาที = 150 วินาที
บน macOS/BSD ให้ใช้ sleep 150 แทน
สรุป
คำสั่ง sleep เป็นเครื่องมือง่ายแต่ทรงพลัง สำหรับเพิ่มการหน่วงเวลา (Pause) ใน Bash Script ใช้ร่วมกับคำสั่งอื่นได้หลากหลาย เช่น:
- สร้างนาฬิกาปลุกแบบง่าย
- ควบคุมลำดับการทำงานให้ถูกต้อง
- เว้นช่วงระหว่างการพยายามเชื่อมต่อเว็บไซต์ (Retry backoff)
ใส่ sleep ลงในชุดเครื่องมือ Bash ของคุณ และเขียนโค้ดต่อไปครับ!