बैश में के लिए , जबकि , और तक तीन लूप निर्माण हैं। जबकि प्रत्येक लूप वाक्य रचना और कार्यात्मक रूप से भिन्न होता है, उनका उद्देश्य एक निश्चित अभिव्यक्ति का मूल्यांकन करते समय कोड के एक ब्लॉक पर पुनरावृति करना होता है।
तक लूप का उपयोग कोड के एक ब्लॉक को निष्पादित करने के लिए किया जाता है जब तक कि अभिव्यक्ति का मूल्यांकन गलत नहीं हो जाता। यह थोड़ी देर के लूप के बिल्कुल विपरीत है। जबकि लूप कोड ब्लॉक चलाता है जबकि एक्सप्रेशन सही है और जब तक लूप इसके विपरीत करता है।
until [ expression ] do code block ... ... done
आइए वाक्य रचना को तोड़ें।
- लूप शुरू करने के लिए आपको कीवर्ड के बाद सिंगल या डबल ब्रेसिज़ के भीतर एक एक्सप्रेशन का उपयोग करना चाहिए।
- कोड ब्लॉक चलाना शुरू करने तक अभिव्यक्ति का मूल्यांकन गलत के रूप में किया जाना चाहिए।
- कोड का वास्तविक ब्लॉक करो और किए के बीच रखा गया है।
इस संक्षिप्त लेख में, आप निम्न उदाहरणों का उपयोग करके अपनी शेल स्क्रिप्ट में लूप तक का उपयोग करना सीखेंगे।
स्क्रिप्ट में एक अनंत लूप बनाएं
आप गलत . का उपयोग करके एक अनंत लूप बना सकते हैं अभिव्यक्ति के रूप में बयान। जब आप अनंत लूप का अनुकरण करने का प्रयास करते हैं तो नींद . का उपयोग करने का प्रयास करें जो समय-समय पर स्क्रिप्ट पास करेगा।
count=0 until false do echo "Counter = $count" ((count++)) sleep 2 done
सिंगल लाइन स्टेटमेंट बनाएं
आप सिंगल-लाइन लूप स्टेटमेंट बना सकते हैं। नीचे दिए गए कोड पर एक नज़र डालें। यह हमारे पहले अनंत लूप उदाहरण के समान है लेकिन एक पंक्ति में है। यहां आपको एक सेमीकोलन का प्रयोग करना है (;) प्रत्येक कथन को समाप्त करने के लिए।
# until false; do echo "Counter = $count"; ((count++)); sleep 2; done
प्रवाह को विराम के साथ बदलें और कथन जारी रखें
आप जबकि . के अंदर एक ब्रेक का उपयोग कर सकते हैं और स्टेटमेंट जारी रख सकते हैं फंदा। ब्रेक स्टेटमेंट लूप से बाहर निकल जाएगा और कंट्रोल को अगले स्टेटमेंट पर पास कर देगा, जबकि कंटिन्यू स्टेटमेंट मौजूदा इटरेशन को छोड़ देगा और लूप में अगला इटरेशन शुरू करेगा।
मैं उसी अनंत लूप उदाहरण का उपयोग कर रहा हूं। यहां जब गिनती पांच के बराबर हो जारी रखें बाकी लूप बॉडी को छोड़कर स्टेटमेंट अगले पुनरावृत्ति पर कूद जाएगा। इसी तरह, लूप टूटता है जब गिनती 10 के बराबर या उससे अधिक हो।
count=0
until false
do
((count++))
if [[ $count -eq 5 ]]
then
continue
elif [[ $count -ge 10 ]]
then
break
fi
echo "Counter = $count"
done
इस लेख के लिए बस इतना ही। हम आपको जल्द ही एक और दिलचस्प लेख से रूबरू कराएंगे 'जब तक ' तो पढ़ते रहिए और हमारा साथ देते रहिए।