คำสั่ง Bash Wait ใน Linux

Bash Wait Command Linux



wait คือคำสั่ง Linux ที่ส่งคืนสถานะการออกหลังจากรอกระบวนการทำงานทั้งหมด เมื่อหลายกระบวนการทำงานพร้อมกัน คำสั่ง wait สามารถติดตามได้เฉพาะกระบวนการสุดท้ายเท่านั้น หากคำสั่ง wait ไม่เชื่อมโยงกับงานหรือ ID กระบวนการ คำสั่งจะรอให้กระบวนการย่อยทั้งหมดเสร็จสิ้นก่อนที่จะส่งคืนสถานะการออก คำสั่ง bash wait มักใช้กับ ID กระบวนการหรือคำสั่ง ID งาน

ในบทช่วยสอนนี้ เราจะสำรวจคำสั่ง 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