अपने शैल लिपियों में लूप तक कैसे उपयोग करें


बैश में, जबकि, और जब तक तीन लूप निर्माण नहीं होते हैं। जबकि प्रत्येक लूप वाक्य रचना और कार्यात्मक रूप से भिन्न होता है, उनका उद्देश्य एक निश्चित अभिव्यक्ति का मूल्यांकन करते समय कोड के एक ब्लॉक पर पुनरावृति करना होता है।

जब तक लूप का उपयोग कोड के ब्लॉक को निष्पादित करने के लिए नहीं किया जाता है, जब तक कि अभिव्यक्ति का मूल्यांकन गलत नहीं हो जाता। यह थोड़ी देर के लूप के बिल्कुल विपरीत है। जबकि लूप कोड ब्लॉक चलाता है जबकि अभिव्यक्ति सत्य है और जब तक लूप विपरीत नहीं करता है।

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

इस लेख के लिए बस इतना ही। हम आपको जल्द ही एक और दिलचस्प लेख से रूबरू कराएंगे 'तब तक' तब तक पढ़ते रहिए और हमारा समर्थन करते रहिए।