วิธีใช้คำสั่ง Linux Sleep เพื่อหยุดสคริปต์ BASH ชั่วคราว

สิ่งที่ต้องรู้

  • ใช้ นอน คำสั่งบวกเวลา; NS=วินาที, NS=นาที, ชม=ชั่วโมง, หรือ NS=วัน (ตัวอย่างเช่น, นอน5วิ หยุดสคริปต์ชั่วคราวเป็นเวลา 5 วินาที)
  • ใช้ ผู้ชายนอน สำหรับข้อมูลเพิ่มเติม

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

ผู้ที่ใช้คำสั่งลีนุกซ์สลีปเป็นเวลา 20 วินาทีบนแล็ปท็อป
Kaley McKean / Lifewire

ตัวอย่างการใช้คำสั่งสลีป

ลองนึกภาพคุณมีสคริปต์ที่ประมวลผลไฟล์ที่ดาวน์โหลดจากเซิร์ฟเวอร์อื่น สคริปต์ไม่ควรเริ่มกระบวนการคัดลอกจนกว่าไฟล์ทั้งหมดจะเสร็จสิ้นการดาวน์โหลด กระบวนการดาวน์โหลดดำเนินการโดยสคริปต์แยกต่างหากที่ทำงานก่อนหน้าคุณ

สคริปต์ที่คัดลอกไฟล์อาจมีการวนซ้ำเพื่อทดสอบว่าไฟล์ทั้งหมดดาวน์โหลดหรือไม่ (ทำได้โดยตรวจสอบว่าพบ 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 ช่วยประหยัดเวลาเพียงเล็กน้อยเท่านั้น อย่างไรก็ตาม หากคุณมีรายการคำสั่งยาวๆ ความสามารถในการพิมพ์คำสั่งในบรรทัดเดียวจะช่วยประหยัดเวลา