#!/bin/bash
command1 &
command2 &
command3 &
wait
command4
wait
(बिना किसी तर्क के) तब तक इंतजार करेंगे जब तक कि सभी पृष्ठभूमि वाली प्रक्रियाएं बाहर नहीं निकल जातीं।
मैनुअल wait
में पूरा विवरण bash
:
wait [-n] [n ...]
प्रत्येक निर्दिष्ट बच्चे की प्रक्रिया के लिए प्रतीक्षा करें और अपनी समाप्ति की स्थिति वापस करें। प्रत्येक n
एक प्रक्रिया आईडी या नौकरी विनिर्देश हो सकता है; यदि नौकरी की युक्ति दी जाती है, तो उस नौकरी की पाइपलाइन की सभी प्रक्रियाओं का इंतजार किया जाता है। यदि n
नहीं दिया गया है, तो वर्तमान में सभी सक्रिय बच्चे प्रक्रियाओं के लिए इंतजार कर रहे हैं, और वापसी की स्थिति शून्य है। यदि
-n
विकल्प की आपूर्ति की जाती है, तो wait
किसी भी नौकरी को समाप्त करने के लिए इंतजार करता है और अपनी निकास स्थिति लौटाता है। यदि n
किसी गैर-मौजूद प्रक्रिया या नौकरी को निर्दिष्ट करता है, तो रिटर्न की स्थिति 127 है। अन्यथा, वापसी की स्थिति अंतिम प्रक्रिया या नौकरी की प्रतीक्षा की स्थिति है।
PID1=$!
और फिर उन सभी के साथ प्रतीक्षा करेंwait "$PID1" "$PID2" "$PID3"
। यह थोड़ा अधिक जटिल है, लेकिन यह काम करेगा यदि प्रक्रिया में अन्य बच्चे हैं जो आप के लिए इंतजार नहीं करना चाहते हैं।