วิธีใช้คำสั่ง Linux Sleep เพื่อหยุดสคริปต์ BASH ชั่วคราว
สิ่งที่ต้องรู้
- ใช้ นอน คำสั่งบวกเวลา; NS=วินาที, NS=นาที, ชม=ชั่วโมง, หรือ NS=วัน (ตัวอย่างเช่น, นอน5วิ หยุดสคริปต์ชั่วคราวเป็นเวลา 5 วินาที)
- ใช้ ผู้ชายนอน สำหรับข้อมูลเพิ่มเติม
บทความนี้อธิบายวิธีใช้คำสั่ง Linux sleep เพื่อหยุด a สคริปต์ทุบตี, เหนือสิ่งอื่นใด. ด้วยตัวของมันเอง คำสั่ง sleep ไม่มีประโยชน์มาก อย่างไรก็ตาม ในสคริปต์ สามารถใช้ได้หลายวิธี ตัวอย่างเช่น คุณสามารถใช้เพื่อหยุดสคริปต์ชั่วคราวก่อนที่จะลองคำสั่งที่ล้มเหลวในครั้งแรกอีกครั้ง

ตัวอย่างการใช้คำสั่งสลีป
ลองนึกภาพคุณมีสคริปต์ที่ประมวลผลไฟล์ที่ดาวน์โหลดจากเซิร์ฟเวอร์อื่น สคริปต์ไม่ควรเริ่มกระบวนการคัดลอกจนกว่าไฟล์ทั้งหมดจะเสร็จสิ้นการดาวน์โหลด กระบวนการดาวน์โหลดดำเนินการโดยสคริปต์แยกต่างหากที่ทำงานก่อนหน้าคุณ
สคริปต์ที่คัดลอกไฟล์อาจมีการวนซ้ำเพื่อทดสอบว่าไฟล์ทั้งหมดดาวน์โหลดหรือไม่ (ทำได้โดยตรวจสอบว่าพบ 50 ไฟล์ก่อนเริ่มกระบวนการคัดลอกหรือไม่)
ไม่มีประเด็นใดในการทดสอบสคริปต์อย่างต่อเนื่องเนื่องจากใช้เวลาประมวลผล แต่คุณอาจหยุดชั่วคราวสักครู่ระหว่างการทดสอบแต่ละครั้งก่อนที่จะลองอีกครั้ง คำสั่ง sleep นั้นสมบูรณ์แบบในสถานการณ์เช่นนี้
วิธีใช้คำสั่งนอน
ในการใช้คำสั่ง Linux sleep ให้ป้อนข้อมูลต่อไปนี้ในหน้าต่างเทอร์มินัล:
นอน5วิ
คำสั่งดังกล่าวทำให้เทอร์มินัลหยุดชั่วคราวเป็นเวลา 5 วินาทีก่อนที่จะกลับไปที่บรรทัดคำสั่ง
คำสั่ง sleep ต้องใช้คำสำคัญ นอนตามด้วยตัวเลขที่คุณต้องการหยุดชั่วคราวและหน่วยวัด
คุณสามารถระบุการหน่วงเวลาเป็นวินาที นาที ชั่วโมง หรือวัน
- NS: วินาที
- NS: นาที
- ชม: ชั่วโมง
- NS: วัน
เมื่อต้องการหยุดสคริปต์ชั่วคราวเป็นเวลาหลายวัน ให้ใช้งาน cron เพื่อเรียกใช้สคริปต์ตามช่วงเวลาปกติ แทนที่จะให้สคริปต์ทำงานในพื้นหลังเป็นเวลาหลายวัน
งาน cron คือคำสั่งหรือสคริปต์ของ Linux ที่คุณสามารถกำหนดเวลาให้ทำงานตามเวลาหรือวันที่กำหนดได้ สิ่งเหล่านี้มีประโยชน์สำหรับการทำซ้ำงานในระยะเวลานาน
ตัวเลขสำหรับช่วงคำสั่ง sleep ไม่จำเป็นต้องเป็นจำนวนเต็ม คุณยังสามารถใช้ตัวเลขทศนิยมได้อีกด้วย

ตัวอย่างเช่น ไวยากรณ์ต่อไปนี้รวมเศษเสี้ยววินาที:
นอน 3.5 วินาที
ตัวอย่างการใช้คำสั่งสลีป
สคริปต์ต่อไปนี้แสดงวิธีใช้คำสั่ง sleep เพื่อสร้างนาฬิกานับถอยหลังแบบใช้เทอร์มินัล:
#!/bin/bash
x=10
ในขณะที่ [ $x -gt 0]
ทำ
นอน1วิ
แจ่มใส
echo "$x วินาทีจนกว่าจะดับ"
x=$(( $x - 1 ))
เสร็จแล้ว
สคริปต์นี้ทำงานอย่างไร:
- สคริปต์ตั้งค่าตัวแปร x เป็น 10
- วง while ยังคงวนซ้ำในขณะที่ค่าของ x มากกว่าศูนย์
- คำสั่ง sleep จะหยุดสคริปต์เป็นเวลา 1 วินาทีในแต่ละครั้งรอบๆ ลูป
- สคริปต์ที่เหลือจะล้างหน้าจอการวนซ้ำแต่ละครั้ง แสดงข้อความ "x วินาทีจนกว่าจะระเบิด" และลบ 1 ออกจากค่าของ x

หากไม่มีคำสั่ง sleep สคริปต์จะขยาย และข้อความจะแสดงเร็วเกินไป
วิธีใช้สวิตช์คำสั่งพักเครื่อง
คำสั่ง sleep มีเพียงไม่กี่สวิตช์เท่านั้น
NS --ช่วย สวิตช์แสดงไฟล์วิธีใช้สำหรับคำสั่งสลีป คุณสามารถทำสิ่งเดียวกันได้โดยใช้คำสั่ง man ดังนี้:
ผู้ชายนอนหลับ
NS --รุ่น สวิตช์แสดงเวอร์ชันของคำสั่ง sleep ที่ติดตั้งในระบบ
ข้อมูลที่ส่งคืนโดยสวิตช์ --version มีดังนี้:
- หมายเลขเวอร์ชัน
- รายละเอียดลิขสิทธิ์
- ใบอนุญาต
- ผู้เขียน
หยุดคำสั่ง Terminal ด้วย Sleep
การใช้คำสั่ง sleep ที่ดีอีกอย่างหนึ่งคือการหยุดคำสั่งที่คุณพิมพ์ในหน้าต่างเทอร์มินัลชั่วคราว
หากต้องการ คุณสามารถพิมพ์คำสั่งสองคำสั่งติดต่อกัน โดยรอให้คำสั่งแรกเสร็จสิ้นก่อนที่จะพิมพ์คำสั่งที่สอง
อย่างไรก็ตาม วิธีที่รวดเร็วกว่าคือการพิมพ์สองคำสั่งในบรรทัดเดียว โดยใช้คำสั่ง sleep ระหว่างแต่ละคำสั่ง:
$ cd /mydirectory/ && sleep 3 && ls.
คำสั่งนี้ทำงานอย่างไร:
- NS cd /mydirectory/ คำสั่งเปลี่ยนไดเร็กทอรี
- NS นอน3 คำสั่งรอสามวินาทีเพื่อให้คำสั่ง cd เสร็จสิ้น
- NS ลส คำสั่งดำเนินการและแสดงเนื้อหาไดเร็กทอรี
สำหรับตัวอย่างง่ายๆ เช่นนี้ คำสั่ง sleep ช่วยประหยัดเวลาเพียงเล็กน้อยเท่านั้น อย่างไรก็ตาม หากคุณมีรายการคำสั่งยาวๆ ความสามารถในการพิมพ์คำสั่งในบรรทัดเดียวจะช่วยประหยัดเวลา