for लूप Bash स्क्रिप्ट लिखते समय एक उपयोगी टूल है, जिसका उपयोग कई फ़ाइलों, रिकॉर्ड या अन्य मानों के लिए किसी कार्य को दोहराने के लिए किया जाता है।
for स्टेटमेंट मानों की एक सूची पर पुनरावृति करता है, प्रत्येक पर कार्य करता है जब तक कि सभी आइटम संसाधित न हो जाएं।
उपयोग के मामलों में किसी डायरेक्टरी में फ़ाइलों पर लूप करना, टेक्स्ट फ़ाइल में पंक्तियों पर, या डेटाबेस क्वेरी के आउटपुट पर शामिल हैं।
Bash फॉर लूप सिंटैक्स
for VARIABLE in LIST do COMMANDS done
जहां:
- VARIABLE वह वेरिएबल नाम है जिसे LIST में प्रत्येक आइटम को COMMANDS द्वारा संसाधित करते समय असाइन किया जाएगा
- LIST कई रूप ले सकता है। उदाहरणों के लिए नीचे देखें
Bash फॉर लूप के उदाहरण
for लूप पूर्वनिर्धारित सूचियों या अन्य स्क्रिप्ट या कमांड-लाइन एप्लिकेशन के आउटपुट से उत्पन्न सूचियों पर पुनरावृति कर सकते हैं।
for लूप के साथ संख्याओं की रेंज पर पुनरावृति करना
{START…END} का उपयोग करके रेंज में प्रत्येक संख्या को प्रोसेस करना (1 से बढ़ाकर):
for num in {0..10} do echo "I'm counting to 10 and I'm up to $num" done
ध्यान दें कि:
- सूची में प्रत्येक आइटम को वेरिएबल नाम num दिया जाता है।
- इन्हें बाद में स्क्रिप्ट में $num का उपयोग करके एक्सेस किया जाता है।
- संख्याओं की रेंज पर पुनरावृति केवल Bash संस्करण 3 और उससे ऊपर में समर्थित है।
- पुनरावृति की जाने वाली संख्याएं कर्ली ब्रेसिज़ की शुरुआत में संख्या से शुरू होती हैं और अंत में संख्या तक, 1 की वृद्धि में चलती हैं
स्टेपिंग संख्याओं पर और 3 से बढ़ाकर – ताकि केवल 3 के गुणक संसाधित हों – {START…END…INCREMENT} का उपयोग करके:
for num in {0..15..3} do echo "$num is a multiple of 3!" done
ध्यान दें कि:
- कर्ली ब्रेसिज़ में एक्सप्रेशन में तीसरी संख्या जोड़ी जाती है।
- यह 0 से 15 तक की संख्याओं पर 3 की वृद्धि में काम करेगा
- कस्टम वृद्धि के साथ रेंज पर पुनरावृति केवल Bash संस्करण 4 और उससे ऊपर में समर्थित है।
for लूप के साथ स्ट्रिंग्स की सूची पर पुनरावृति करना
आप स्ट्रिंग मानों की सूची पर भी पुनरावृति कर सकते हैं:
for car in Ford, Holden, Honda, BMW, Ferrari do echo "I wish I could drive a $car" done
for लूप के साथ ऐरे पर पुनरावृति करना
पुनरावृति से पहले किसी वेरिएबल के रूप में ऐरे घोषित किया जा सकता है:
FRUITS=('Apple' 'Pear' 'Orange' 'Strawberry') for fruit in "${FRUITS[@]}" do echo "$fruit is delicious" done
for लूप के साथ फ़ाइलों (और अन्य आउटपुट) पर पुनरावृति करना
आप अन्य कमांड-लाइन कमांड के आउटपुट पर भी लूप कर सकते हैं:
for f in * do echo "Filename is $f" done
Break
break स्टेटमेंट किसी दिए गए बिंदु पर लूप से बाहर निकल जाएगा:
for num in {0..15..3} do echo "$num is a multiple of 3!" if [[ "$num" == '9' ]] then break fi done echo 'Finished counting at 9!'
Continue
continue स्टेटमेंट लूप के वर्तमान पुनरावृत्ति में कोड निष्पादित करना बंद कर देगा (इसे पूरी तरह से छोड़ देगा) और अगले पुनरावृत्ति पर जारी रखेगा:
for num in {0..15..3} do if [[ "$num" == '6' ]] then continue fi echo "$num is a multiple of 3!" done echo 'The number 6 was skipped!'
निष्कर्ष
स्क्रिप्ट लिखते समय लूप का उपयोग करने से आपका समय बचेगा और आप लचीली स्क्रिप्ट लिख सकेंगे जो मैन्युअल डेटा एंट्री के बिना फ़ाइलों और डेटा को प्रोसेस करने को स्वचालित कर सकती हैं।
अधिक Bash स्क्रिप्टिंग टिप्स के लिए हमारे अन्य लेख देखें!