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