प्रतीक्षा
हम प्रदर्शित करेंगे प्रतीक्षा पहले आदेश दें. ऐसा करने के लिए, हमें दो स्क्रिप्ट की आवश्यकता होगी, एक मूल स्क्रिप्ट:
#! / Bin / bash
# async-पैरेंट: एसिंक्रोनस निष्पादन डेमो (पैरेंट) इको "पैरेंट: प्रारंभ..."
इको "पैरेंट: चाइल्ड स्क्रिप्ट लॉन्च करना..." एसिंक-चाइल्ड और
पीआईडी=$!
इको "अभिभावक: बच्चा (पीआईडी = $ पीआईडी) लॉन्च किया गया।"
प्रतिध्वनि "अभिभावक: जारी है..." नींद 2
प्रतिध्वनि "अभिभावक: बच्चे के समाप्त होने की प्रतीक्षा करने के लिए रुक रहे हैं..." $pid प्रतीक्षा करें
इको "अभिभावक: बच्चा समाप्त हो गया है। जारी है..." प्रतिध्वनि "अभिभावक: माता-पिता समाप्त हो गया है। बाहर निकल रहे हैं।"
#! / Bin / bash
# async-पैरेंट: एसिंक्रोनस निष्पादन डेमो (पैरेंट) इको "पैरेंट: प्रारंभ..."
इको "पैरेंट: चाइल्ड स्क्रिप्ट लॉन्च करना..." एसिंक-चाइल्ड और
पीआईडी=$!
इको "अभिभावक: बच्चा (पीआईडी = $ पीआईडी) लॉन्च किया गया।"
प्रतिध्वनि "अभिभावक: जारी है..." नींद 2
प्रतिध्वनि "अभिभावक: बच्चे के समाप्त होने की प्रतीक्षा करने के लिए रुक रहे हैं..." $pid प्रतीक्षा करें
इको "अभिभावक: बच्चा समाप्त हो गया है। जारी है..." प्रतिध्वनि "अभिभावक: माता-पिता समाप्त हो गया है। बाहर निकल रहे हैं।"
और एक चाइल्ड स्क्रिप्ट:
#! / Bin / bash
# एसिंक-चाइल्ड: एसिंक्रोनस निष्पादन डेमो (चाइल्ड) इको "बच्चा: बच्चा चल रहा है..."
नींद 5
प्रतिध्वनि "बच्चा: बच्चा हो गया। बाहर निकल रहा हूँ।"
#! / Bin / bash
# एसिंक-चाइल्ड: एसिंक्रोनस निष्पादन डेमो (चाइल्ड) इको "बच्चा: बच्चा चल रहा है..."
नींद 5
प्रतिध्वनि "बच्चा: बच्चा हो गया। बाहर निकल रहा हूँ।"
इस उदाहरण में, हम देखते हैं कि चाइल्ड स्क्रिप्ट बहुत सरल है। वास्तविक क्रिया माता-पिता द्वारा प्रति-गठित की जा रही है। मूल स्क्रिप्ट में, चाइल्ड स्क्रिप्ट लॉन्च की जाती है और पृष्ठभूमि में डाल दी जाती है। चाइल्ड स्क्रिप्ट की प्रोसेस आईडी असाइन करके रिकॉर्ड की जाती है पीआईडी के मान के साथ परिवर्तनीय $! शेल पैरामीटर, जिसमें हमेशा पृष्ठभूमि में रखे गए अंतिम कार्य की प्रक्रिया आईडी शामिल होगी।
मूल स्क्रिप्ट जारी रहती है और फिर निष्पादित होती है प्रतीक्षा चाइल्ड प्रोसेस की पीआईडी के साथ कमांड। इसके कारण मूल स्क्रिप्ट चाइल्ड स्क्रिप्ट के बाहर निकलने तक रुक जाती है, जिस बिंदु पर मूल स्क्रिप्ट समाप्त हो जाती है।
निष्पादित होने पर, पैरेंट और चाइल्ड स्क्रिप्ट निम्नलिखित आउटपुट उत्पन्न करती हैं:
[मुझे@लिनक्सबॉक्स ~]$ async-parent
अभिभावक: शुरू...
[मुझे@लिनक्सबॉक्स ~]$ async-parent
अभिभावक: शुरू...
अतुल्यकालिक निष्पादन
अभिभावक: चाइल्ड स्क्रिप्ट लॉन्च कर रहे हैं... अभिभावक: चाइल्ड (पीआईडी= 6741) लॉन्च किया गया। माता-पिता: जारी है...
बच्चा: बच्चा दौड़ रहा है...
माता-पिता: बच्चे के ख़त्म होने का इंतज़ार करने के लिए रुकना... बच्चा: बच्चा ख़त्म हो गया। बाहर निकलना.
माता-पिता: बच्चा ख़त्म हो गया. जारी... अभिभावक: अभिभावक हो गया। बाहर निकलना.
अभिभावक: चाइल्ड स्क्रिप्ट लॉन्च कर रहे हैं... अभिभावक: चाइल्ड (पीआईडी= 6741) लॉन्च किया गया। माता-पिता: जारी है...
बच्चा: बच्चा दौड़ रहा है...
माता-पिता: बच्चे के ख़त्म होने का इंतज़ार करने के लिए रुकना... बच्चा: बच्चा ख़त्म हो गया। बाहर निकलना.
माता-पिता: बच्चा ख़त्म हो गया. जारी... अभिभावक: अभिभावक हो गया। बाहर निकलना.