लूप के लिए उपयोग करते हुए बैश समानांतर नौकरियां

Lupa Ke Li E Upayoga Karate Hu E Baisa Samanantara Naukariyam



लिनक्स में कई कमांड या बैश स्क्रिप्ट को समानांतर में चलाने के कई तरीके मौजूद हैं। समानांतर नौकरी चलाने के लिए बैश स्क्रिप्ट में 'फॉर' लूप का उपयोग करने का एक तरीका है। यह लूप 'seq' कमांड का उपयोग करके समांतर नौकरियों को चलाने के लिए बहुत उपयोगी है। इस ट्यूटोरियल में 'फॉर' लूप का उपयोग करके समानांतर नौकरियों को निष्पादित करने के विभिन्न तरीके दिखाए गए हैं।

समानांतर नौकरियों के विभिन्न उदाहरण

ट्यूटोरियल के इस भाग में 'फॉर' लूप का उपयोग करके समानांतर नौकरियों को चलाने के विभिन्न तरीके दिखाए गए हैं।

उदाहरण 1: 'फॉर' लूप का उपयोग करके समानांतर जॉब चलाएं

बैश स्क्रिप्ट में समानांतर कार्य करने के लिए 'फॉर' लूप का उपयोग करना सरल तरीका है। निम्नलिखित स्क्रिप्ट के साथ एक बैश फ़ाइल बनाएं जो 10000 बार 'फॉर' लूप चलाती है और 1000 बार पुनरावृत्ति के बाद एक संख्या प्रिंट करती है। यह कार्य 'फॉर' लूप का उपयोग करके समानांतर में किया जाता है।







#!/बिन/बैश

# लूप को 10000 तक पहुंचने तक दोहराएं

के लिए वैल में ` स्व-परीक्षा प्रश्न 0 1000 10000 ` ;

करना

# हर 1000वां नंबर प्रिंट करें

गूंज $वैल

पूर्ण

स्क्रिप्ट निष्पादित करने के बाद निम्न आउटपुट दिखाई देता है। 0 और 10000 के बीच 10 संख्याएँ हैं जो आउटपुट में छपी हैं:



  पी 3



उदाहरण 2: नेस्टेड 'फॉर' लूप का उपयोग करके समानांतर जॉब चलाएँ

निम्नलिखित स्क्रिप्ट के साथ एक बैश फ़ाइल बनाएं जो नेस्टेड 'फॉर' लूप चलाती है जो 'ए' से 'सी' और संख्या 1 से 3 तक वर्णमाला वर्णों का उपयोग करके सीरियल नंबर उत्पन्न करती है। बाहरी लूप के पहले पुनरावृत्ति में और बाद में आंतरिक पाश की पुनरावृत्ति को पूरा करना, “A1। कोडइग्निटर', 'ए2. लारवेल', और 'A3. CakePHP ”मुद्रित हैं। बाहरी लूप के दूसरे पुनरावृत्ति में और आंतरिक लूप के पुनरावृत्ति को पूरा करने के बाद, “B1. ओरेकल', 'बी2. MySQL', और 'B3. SQL' मुद्रित हैं। बाहरी लूप के तीसरे पुनरावृत्ति में और आंतरिक लूप के पुनरावृत्ति को पूरा करने के बाद, 'C1. सीएसएस', 'सी2. JQuery', और 'C3. जावास्क्रिप्ट ”मुद्रित हैं।





# बाहरी पाश

के लिए अल्फा में { एसी }

करना

#आंतरिक फंदे

के लिए संख्या में { 1 .. 3 }

करना

# कंडीशन के आधार पर आउटपुट प्रिंट करें

अगर [ $alpha == 'ए' ] ; तब

सारणी सूची = ( 'कोडइग्निटर' 'लारावेल' 'केकपीएचपी' )

elif [ $alpha == 'बी' ] ; तब

सारणी सूची = ( 'आकाशवाणी' 'माई एसक्यूएल' 'एसक्यूएल' )

elif [ $alpha == 'सी' ] ; तब

सारणी सूची = ( 'सीएसएस' 'JQuery' 'जावास्क्रिप्ट' )

होना

गूंज ' $alpha $ संख्या . ${arrayList[$number-1]} '

पूर्ण

पूर्ण

स्क्रिप्ट निष्पादित करने के बाद निम्न आउटपुट दिखाई देता है:



उदाहरण 3: 'फॉर' लूप और 'वेट' कमांड का उपयोग करके पैरेलल जॉब्स रन करें

'प्रतीक्षा करें' कमांड बैश का एक बहुत ही उपयोगी कमांड है जिसका उपयोग कई कार्य चलने पर कार्य को पूरा करने के लिए एक कार्य की प्रतीक्षा करने के लिए किया जाता है। यदि कम कार्य चल रहे हैं, तो 'प्रतीक्षा करें' आदेश अतुल्यकालिक रूप से एक नया कार्य प्रारंभ करता है। निम्नलिखित स्क्रिप्ट के साथ एक बैश फ़ाइल बनाएं जो नेस्टेड 'फॉर' लूप के अंदर बैकग्राउंड जॉब चलाती है। सभी बाल प्रक्रियाओं को पूरा करने के लिए प्रतीक्षा करने के लिए 'प्रतीक्षा' कमांड का उपयोग किया जाता है। पृष्ठभूमि प्रक्रिया के रूप में 'तारीख' और 'नींद' आदेश निष्पादित किए जाते हैं।

# बाहरी पाश

के लिए मैं में { 1 .. 2 }

करना

#आंतरिक फंदे

के लिए जे में { 1 .. 3 }

करना

अगर परीक्षा ' $(नौकरियां | wc -l) ' -जी 2 ; तब

इंतज़ार -एन

होना

#पृष्ठभूमि प्रक्रिया

{

तारीख

नींद 1

} और

पूर्ण

पूर्ण

स्क्रिप्ट निष्पादित करने के बाद निम्न आउटपुट दिखाई देता है। नेस्टेड 'के लिए' लूप को 2 × 3 = 6 बार पुनरावृत्त करने के लिए वर्तमान दिनांक और समय को पृष्ठभूमि प्रक्रिया से 6 बार मुद्रित किया जाता है:

उदाहरण 4: अनुक्रमिक और समांतर रन के बीच अंतर

निम्नलिखित स्क्रिप्ट के साथ एक बैश फ़ाइल बनाएं जो अनुक्रमिक रन और समांतर रन के बीच अंतर दिखाती है। prn_char() फ़ंक्शन को 0.5 सेकंड की अवधि वाले पांच वर्णों को प्रिंट करने के लिए स्क्रिप्ट में परिभाषित किया गया है। इसके बाद, पहले 'फॉर' लूप का उपयोग prn_char() फ़ंक्शन को क्रमिक रूप से चलाने के लिए किया जाता है। दूसरे 'फॉर' लूप का उपयोग prn_char () फ़ंक्शन को समानांतर में चलाने के लिए किया जाता है।

# 0.5 सेकंड की अवधि के साथ 5 वर्णों को प्रिंट करने के लिए एक फ़ंक्शन को परिभाषित करें

prn_char ( ) {

के लिए सी में नमस्ते; करना

नींद 0.5 ;

गूंज -एन $ग ;

पूर्ण

गूंज

}

# लूप के लिए क्रमिक रूप से फ़ंक्शन का उपयोग करें

के लिए बाहर में { 1 .. 3 } ; करना

prn_char ' $ बाहर '

पूर्ण

# समानांतर में लूप के लिए उपयोग करके फ़ंक्शन को चलाएं

के लिए बाहर में { 1 .. 3 } ; करना

prn_char ' $ बाहर ' और

पूर्ण


स्क्रिप्ट निष्पादित करने के बाद निम्न आउटपुट दिखाई देता है। अनुक्रमिक रन और समांतर रन के बीच का अंतर आउटपुट में दिखाया गया है। यहाँ, prn_char () फ़ंक्शन के 'फॉर' लूप के सभी वर्ण अनुक्रमिक रन में एक समय में प्रिंट किए जाते हैं और प्रत्येक वर्ण समानांतर रन में तीन बार प्रिंट किया जाता है:

  p4

निष्कर्ष

कई प्रोग्रामिंग उद्देश्यों के लिए 'फॉर' लूप का उपयोग करके समानांतर नौकरियों को चलाना आवश्यक है। इस ट्यूटोरियल में 'फॉर' लूप का उपयोग करके समानांतर नौकरियों को चलाने के तरीके दिखाए गए हैं।