ในบทช่วยสอนนี้ เราจะสำรวจคำสั่ง Bash Wait ใน Linux
ไวยากรณ์:
ไวยากรณ์ทั่วไปของคำสั่ง Wait ใน Linux คือ:
รอ [ตัวเลือก] ID
ID จะเป็น ID กระบวนการหรือ ID งาน
อธิบายคำสั่ง Bash Wait ใน Linux:
ขั้นแรก สร้างไฟล์โดยใช้คำสั่งสัมผัส:
$สัมผัสBashWait.sh
ทำให้ไฟล์นี้สามารถเรียกใช้งานได้โดยใช้คำสั่งด้านล่าง:
$chmod+x ชื่อไฟล์
เมื่อให้สิทธิ์การเรียกทำงานแก่ไฟล์แล้ว ให้เปิดไฟล์และเขียนสคริปต์ในไฟล์ทุบตี:
#!/bin/bashนอน 3 &
รหัสกระบวนการ=$!
โยนออก 'พีไอดี:$processID'
รอ $processID
โยนออก 'สถานะการออก: $?'
$! เป็นตัวแปรใน BASH ที่เก็บ PID ของกระบวนการล่าสุด
ตอนนี้ รันสคริปต์ดังนี้:
$./ชื่อไฟล์$./BashWait.sh
ID กระบวนการและสถานะที่มีอยู่จะปรากฏในเชลล์
ใช้ตัวเลือก –n:
ด้วยอ็อพชัน –n คำสั่ง wait จะรอเพียงงานเดียวจาก ID กระบวนการหรือข้อกำหนดของงานที่ระบุให้เสร็จสิ้นก่อนที่จะส่งคืนสถานะการออก Wait -n รอให้งานพื้นหลังเสร็จสิ้น และส่งกลับสถานะออกจากงานหากไม่มีอาร์กิวเมนต์
เขียนบรรทัดที่ระบุด้านล่างในสคริปต์ของคุณ:
#!/bin/bashนอน 30 &
นอน 8 &
นอน 7 &
รอ -NS
โยนออก 'งานแรกเสร็จเรียบร้อยแล้ว'
รอ
โยนออก 'งานทั้งหมดเสร็จเรียบร้อยแล้ว'
ถัดไป ให้รันสคริปต์อีกครั้ง และเมื่องานแรกเสร็จสมบูรณ์ งานแรกจะพิมพ์ข้อความบนเทอร์มินัลและรอให้งานอื่นๆ ทั้งหมดเสร็จสิ้น
ใช้ตัวเลือก –f:
อ็อพชัน -f รอให้แต่ละ id กระบวนการหรืองานหยุดก่อนที่จะส่งคืนโค้ดทางออก การควบคุมงานจะใช้ได้เฉพาะกับพร้อมท์ที่ตอบสนองตามค่าเริ่มต้น
เปิดเทอร์มินัลแล้วรันคำสั่ง:
รอกระบวนการ 3944
เปิดหน้าต่างเทอร์มินัลอื่นและรันคำสั่ง kill เพื่อยุติกระบวนการ
สถานะจะเปลี่ยนไป คำสั่ง Wait จะเสร็จสิ้นและส่งคืนรหัสออกจากกระบวนการ
ทำซ้ำขั้นตอนข้างต้นด้วยคำสั่ง –f
สคริปต์พร้อมคำสั่งรอ:
เรากำลังใช้สคริปต์ 'hello.sh' และ 'bash.sh' สำหรับการสาธิต สคริปต์ 'hello.sh' พิมพ์ตัวเลขตั้งแต่ 1 ถึง 5 และสคริปต์ 'bash.sh' จะเรียก hello.sh และเรียกใช้ในพื้นหลัง โดยมี PID ของ hello.sh และรอให้สิ้นสุด
สร้างสองสคริปต์ด้วยชื่อสวัสดีและทุบตี:
เพิ่มบรรทัดที่ระบุด้านล่างในไฟล์ hello.sh:
#!/bin/bashสำหรับผมใน 1 2 3 4 5 6 7 8 9 10
ทำ
โยนออกhello.sh – หมายเลขวนรอบ$i.
เสร็จแล้ว
เพิ่มบรรทัดที่ระบุด้านล่างในสคริปต์ทุบตี:
#!/bin/bashโยนออกเริ่ม bash.sh
โยนออกเริ่มสวัสดี.sh
./สวัสดี.sh&
process_id=$!
รอ $process_id
โยนออกเสร็จสิ้น hello.sh
เอาท์พุท:
บทสรุป:
เมื่อผู้ใช้ต้องการหยุดกระบวนการ ระบบจะปล่อยทรัพยากรทั้งหมดที่เก็บไว้โดยกระบวนการและรอการเริ่มต้นใหม่ เราจะต้องแจ้งกระบวนการว่าสามารถเริ่มการทำงานใหม่ได้เมื่อกระบวนการอื่นเสร็จสิ้น คำสั่ง wait ใน bash จะรอเพื่อให้การดำเนินการเสร็จสิ้น และส่งกลับสถานะการออกเมื่อการดำเนินการของกระบวนการเสร็จสิ้น ในคู่มือนี้ เราได้เห็นตัวอย่างบางส่วนของคำสั่ง Bash wait ใน Linux