#!/bin/bash
command1 &
command2 &
command3 &
wait
command4
wait
(ไม่มีข้อโต้แย้งใด ๆ ) จะรอจนกว่ากระบวนการพื้นหลังทั้งหมดจะออก
คำอธิบายที่สมบูรณ์ของwait
ในbash
คู่มือ:
wait [-n] [n ...]
รอแต่ละกระบวนการลูกที่ระบุและส่งกลับสถานะการเลิกจ้าง แต่ละคนn
อาจเป็น ID กระบวนการหรือข้อกำหนดงาน ถ้า spec ของงานได้รับกระบวนการทั้งหมดในขั้นตอนการทำงานของงานนั้นจะถูกรอ หากn
ไม่ได้รับกระบวนการลูกที่ใช้งานอยู่ในปัจจุบันทั้งหมดจะรอและสถานะการส่งคืนเป็นศูนย์ หาก
-n
มีการจัดหาตัวเลือกให้wait
รองานใด ๆ เพื่อยกเลิกและส่งคืนสถานะการออก หากn
ระบุกระบวนการหรืองานที่ไม่มีอยู่สถานะการส่งคืนคือ 127 มิฉะนั้นสถานะการส่งคืนคือสถานะการออกของกระบวนการสุดท้ายหรืองานที่รอ
PID1=$!
wait "$PID1" "$PID2" "$PID3"
มันซับซ้อนกว่านี้เล็กน้อย แต่จะใช้งานได้หากกระบวนการมีเด็กคนอื่นซึ่งคุณไม่ต้องการรอ