Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

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

ข้อควรรู้

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

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

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

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

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

สคริปต์ที่คัดลอกไฟล์อาจมีการวนซ้ำเพื่อทดสอบว่าไฟล์ทั้งหมดดาวน์โหลดหรือไม่ (ทำได้โดยตรวจสอบว่าพบ 50 ไฟล์หรือไม่ก่อนเริ่มกระบวนการคัดลอก)

ไม่มีประเด็นใดในการทดสอบสคริปต์อย่างต่อเนื่องเนื่องจากใช้เวลาประมวลผล แต่คุณอาจหยุดชั่วคราวสักครู่ระหว่างการทดสอบแต่ละครั้งก่อนที่จะลองอีกครั้ง คำสั่ง sleep นั้นสมบูรณ์แบบในสถานการณ์เช่นนี้

วิธีใช้คำสั่งพักเครื่อง

ในการใช้คำสั่ง Linux sleep ให้ป้อนข้อมูลต่อไปนี้ในหน้าต่างเทอร์มินัล:

นอน 5 วินาที

คำสั่งด้านบนทำให้เทอร์มินัลหยุดชั่วคราวเป็นเวลา 5 วินาทีก่อนที่จะกลับไปที่บรรทัดคำสั่ง

คำสั่ง sleep ต้องใช้คีย์เวิร์ด sleep , ตามด้วยตัวเลขที่คุณต้องการหยุดชั่วคราวและหน่วยวัด

คุณสามารถระบุการหน่วงเวลาเป็นวินาที นาที ชั่วโมง หรือวันได้

  • s :วินาที
  • :นาที
  • :ชั่วโมง
  • :วัน

เมื่อต้องการหยุดสคริปต์ชั่วคราวเป็นเวลาหลายวัน ให้ใช้งาน cron เพื่อเรียกใช้สคริปต์ตามช่วงเวลาปกติ แทนที่จะให้สคริปต์ทำงานในเบื้องหลังเป็นเวลาหลายวัน

งาน cron คือคำสั่งหรือสคริปต์ของ Linux ที่คุณสามารถกำหนดเวลาให้ทำงานตามเวลาหรือวันที่กำหนดได้ สิ่งเหล่านี้มีประโยชน์สำหรับการทำงานซ้ำเป็นระยะเวลานาน

ตัวเลขสำหรับช่วงคำสั่ง sleep ไม่จำเป็นต้องเป็นจำนวนเต็ม คุณยังสามารถใช้ตัวเลขทศนิยมได้อีกด้วย

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

ตัวอย่างเช่น ไวยากรณ์ต่อไปนี้รวมเศษเสี้ยววินาที:

sleep 3.5s

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

สคริปต์ต่อไปนี้แสดงวิธีใช้คำสั่ง sleep เพื่อสร้างนาฬิกานับถอยหลังแบบใช้เทอร์มินัล:

#!/bin/bash
x=10
while [ $x -gt 0 ]
do
sleep 1s
clear
echo " $x วินาทีจนกว่าจะดับ"
x=$(( $x - 1 ))
done

สคริปต์นี้ทำงานอย่างไร:

  • สคริปต์ตั้งค่าตัวแปร x เป็น 10
  • while loop ยังคงวนซ้ำในขณะที่ค่าของ x มากกว่าศูนย์
  • คำสั่ง sleep จะหยุดสคริปต์ชั่วคราว 1 วินาทีในแต่ละครั้งรอบๆ ลูป
  • สคริปต์ที่เหลือจะล้างหน้าจอการวนซ้ำแต่ละครั้ง แสดงข้อความ "x วินาทีจนกว่าจะหมด" และลบ 1 ออกจากค่าของ x
วิธีใช้คำสั่ง Linux Sleep เพื่อหยุด BASH Script ชั่วคราว

หากไม่มีคำสั่ง sleep สคริปต์จะขยายและข้อความจะแสดงเร็วเกินไป

วิธีการใช้สวิตซ์คำสั่งพักเครื่อง

คำสั่ง sleep มีสวิตช์เพียงไม่กี่ตัว

--ช่วยเหลือ สวิตช์แสดงไฟล์วิธีใช้สำหรับคำสั่งสลีป คุณสามารถทำสิ่งเดียวกันได้โดยใช้คำสั่ง man ดังนี้:

คนนอนหลับ

--เวอร์ชัน สวิตช์แสดงเวอร์ชันของคำสั่งพักเครื่องที่ติดตั้งในระบบ

ข้อมูลที่ส่งคืนโดยสวิตช์ --version มีดังนี้:

  • หมายเลขเวอร์ชัน
  • รายละเอียดลิขสิทธิ์
  • ใบอนุญาต
  • ผู้เขียน

หยุดคำสั่งเทอร์มินัลชั่วคราวด้วยโหมดสลีป

อีกวิธีหนึ่งที่ดีสำหรับคำสั่ง sleep คือการหยุดคำสั่งที่คุณพิมพ์ในหน้าต่างเทอร์มินัลชั่วคราว

หากต้องการ คุณสามารถพิมพ์คำสั่งสองคำสั่งติดต่อกัน โดยรอให้คำสั่งแรกเสร็จสิ้นก่อนที่จะพิมพ์คำสั่งที่สอง

อย่างไรก็ตาม วิธีที่รวดเร็วกว่าคือการพิมพ์สองคำสั่งในบรรทัดเดียว โดยใช้คำสั่ง sleep ระหว่างแต่ละคำสั่ง:

$ cd /mydirectory/ && sleep 3 && ls

คำสั่งนี้ทำงานอย่างไร:

  • cd /mydirectory/ คำสั่งเปลี่ยนไดเร็กทอรี
  • The นอน 3 คำสั่งรอสามวินาทีเพื่อให้คำสั่ง cd เสร็จสิ้น
  • The ls คำสั่งดำเนินการและแสดงเนื้อหาไดเรกทอรี

สำหรับตัวอย่างง่ายๆ เช่นนี้ คำสั่ง sleep ช่วยประหยัดเวลาเพียงเล็กน้อยเท่านั้น อย่างไรก็ตาม หากคุณมีรายการคำสั่งยาวๆ ความสามารถในการพิมพ์คำสั่งในบรรทัดเดียวจะช่วยประหยัดเวลา