लूप के लिए "बाश" कैसे लिखें

शैल स्क्रिप्ट में "लूप" के लिए बाश का उपयोग कैसे करें

बाश (जो बोर्न अगेन शैल के लिए खड़ा है) एक लिपिंग भाषा है जो अधिकांश लिनक्स और यूनिक्स आधारित ऑपरेटिंग सिस्टम द्वारा उपयोग की जाती है।

आप एक टर्मिनल विंडो के भीतर बाश कमांड को एक के बाद चला सकते हैं या आप शेल स्क्रिप्ट बनाने के लिए कमांड को टेक्स्ट फाइल में जोड़ सकते हैं।

खोल स्क्रिप्ट लिखने के बारे में सबसे अच्छी बात यह है कि आप उन्हें बार-बार चला सकते हैं। उदाहरण के लिए कल्पना करें कि आपको किसी उपयोगकर्ता को सिस्टम में जोड़ने, उनकी अनुमतियां सेट करने और उनके प्रारंभिक वातावरण को प्रबंधित करने की आवश्यकता है। आप या तो पेपर के टुकड़े पर कमांड लिख सकते हैं और जैसे ही आप नए उपयोगकर्ता जोड़ते हैं उन्हें चला सकते हैं या आप एक स्क्रिप्ट लिख सकते हैं और बस उस स्क्रिप्ट में पैरामीटर पास कर सकते हैं।

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

किसी भी प्रोग्रामिंग और स्क्रिप्टिंग भाषा का एक महत्वपूर्ण हिस्सा कोड के समान टुकड़े को बार-बार चलाने की क्षमता है।

कोड दोहराने के कई तरीके हैं (लूप के रूप में भी जाना जाता है)। इस गाइड में, आपको दिखाया जाएगा कि "for" लूप कैसे लिखना है।

लूप के लिए एक कोड के एक निश्चित खंड को बार-बार दोहराता है। वे उपयोगी हैं ताकि आदेशों की एक श्रृंखला तब तक चलती रहें जब तक कोई विशेष स्थिति पूरी नहीं हो जाती, जिसके बाद वे रुक जाएंगे।

इस मार्गदर्शिका में, आपको BASH स्क्रिप्ट के भीतर लूप का उपयोग करने के पांच तरीके दिखाए जाएंगे।

शुरू करने से पहले

लूप उदाहरणों के साथ शुरू करने से पहले, आपको टर्मिनल विंडो खोलने और इन चरणों का पालन करने की आवश्यकता है:

  1. Mkdir स्क्रिप्ट दर्ज करें ( यहां mkdir के बारे में और जानें )
  2. सीडी स्क्रिप्ट दर्ज करें (यह निर्देशिका को स्क्रिप्ट में बदल देता है )
  3. Nano examplen.sh दर्ज करें (जहां n उदाहरण है जिस पर आप काम कर रहे हैं)
  4. स्क्रिप्ट दर्ज करें
  5. सहेजने के लिए CTRL + O दबाएं और बाहर निकलने के लिए CTRL + X दबाएं
  6. बैश testplen.sh चलाएं (फिर से, उदाहरण के साथ आप काम कर रहे हैं)

एक सूची के माध्यम से लूप कैसे करें

#! / Bin / bash
1 2 3 4 5 में संख्या के लिए
कर
echo $ संख्या
किया हुआ
बाहर निकलें 0

"फॉर" लूप का उपयोग करने का बाश तरीका कुछ अन्य प्रोग्रामिंग और स्क्रिप्टिंग भाषाओं के लिए "लूप" को संभालने के तरीके से थोड़ा अलग है। आइए स्क्रिप्ट को तोड़ दें ...

एक लश में "लूप" के लिए, सूची में प्रत्येक आइटम के लिए एक बार किया जाता है।

उपर्युक्त उदाहरण में, सूची वह सब कुछ है जो शब्द के बाद आता है (यानी 1 2 3 4 5)।

प्रत्येक बार लूप पुनरावृत्त होता है, सूची में अगला मान "के लिए" शब्द के बाद निर्दिष्ट चर में डाला जाता है। उपरोक्त पाश में, चर को संख्या कहा जाता है।

गूंज कथन स्क्रीन पर जानकारी प्रदर्शित करने के लिए प्रयोग किया जाता है।

इसलिए, यह उदाहरण संख्या 1 से 5 लेता है और उन्हें एक-एक करके स्क्रीन पर आउटपुट करता है:

एक प्रारंभ और अंत बिंदु के बीच लूप कैसे करें

उपरोक्त उदाहरण के साथ समस्या यह है कि यदि आप एक बड़ी सूची (1 से 500 कहें) को संसाधित करना चाहते हैं, तो सभी संख्याओं को पहले स्थान पर टाइप करने में उम्र लगेगी।

यह हमें दूसरे उदाहरण में लाता है जो दिखाता है कि कैसे एक प्रारंभ और अंत बिंदु निर्दिष्ट करना है:

#! / Bin / bash
{1..10} में संख्या के लिए
कर
गूंज "$ संख्या"
किया हुआ
बाहर निकलें 0

नियम मूल रूप से वही हैं। " इन" शब्द के बाद मानों को फिर से शुरू करने के लिए सूची बनाते हैं और सूची में प्रत्येक मान चर (यानी संख्या) में रखा जाता है, और प्रत्येक बार लूप पुनरावृत्त होता है, तो करने और किए गए विवरणों के बीच के विवरण किए जाते हैं।

मुख्य अंतर यह है कि जिस तरह से सूची बनाई गई है। घुंघराले ब्रैकेट {} मूल रूप से एक सीमा को दर्शाता है, और सीमा, इस मामले में, 1 से 10 है (दो बिंदु एक श्रेणी की शुरुआत और अंत को अलग करते हैं)।

इसलिए, यह उदाहरण 1 और 10 के बीच प्रत्येक संख्या के माध्यम से चलता है और स्क्रीन को संख्या को निम्नानुसार आउटपुट करता है:

पहले उदाहरण के समान वाक्यविन्यास के साथ, वही लूप इस तरह लिखा जा सकता था:

1 2 3 4 5 6 7 8 9 10 में संख्या के लिए

एक रेंज में नंबर कैसे छोड़ें

पिछले उदाहरण से पता चला कि कैसे शुरुआत और अंत बिंदु के बीच लूप करना है, इसलिए अब हम देखेंगे कि सीमाओं में संख्याओं को कैसे छोड़ना है।

कल्पना करें कि आप 0 और 100 के बीच लूप करना चाहते हैं लेकिन केवल दसवें नंबर दिखाएं। निम्नलिखित स्क्रिप्ट दिखाती है कि यह कैसे करें:

#! / Bin / bash
{0..100..10} में संख्या के लिए
कर
गूंज "$ संख्या"
किया हुआ
बाहर निकलें 0

नियम मूल रूप से वही हैं। एक सूची, एक चर, और कथन का एक सेट किया जाता है जो किया और किया जाता है । इस बार सूची इस तरह दिखती है: {0..100..10}।

पहला नंबर 0 है और अंत संख्या 100 है। तीसरी संख्या (10) सूची में आइटम्स की संख्या है जो इसे छोड़ देगी।

उपर्युक्त उदाहरण, इसलिए, निम्न आउटपुट प्रदर्शित करता है:

लूप के लिए एक और पारंपरिक खोज रहे हैं

अन्य प्रोग्रामिंग भाषाओं की तुलना में लूप के लिए लिखने का बाश तरीका थोड़ा अजीब है।

हालांकि, आप सी प्रोग्रामिंग भाषा के समान शैली में लूप के लिए लिख सकते हैं, जैसे:

#! / Bin / bash
के लिए ((संख्या = 1; संख्या <100; संख्या ++))
{
अगर (($ संख्या% 5 == 0))
फिर
गूंज "$ संख्या 5 से विभाजित है"
फाई
}
बाहर निकलें 0

लूप वैरिएबल नंबर को 1 (संख्या = 1 ) पर सेट करके शुरू होता है। लूप पुनरावृत्त रहेगा जबकि किसी संख्या का मान 100 से कम ( संख्या <100 ) है। प्रत्येक पुनरावृत्ति ( संख्या ++ ) के बाद 1 को जोड़कर संख्या का मूल्य बदल जाता है।

घुंघराले ब्रेसिज़ के बीच सब कुछ लूप के प्रत्येक पुनरावृत्ति के माध्यम से किया जाता है।

ब्रेसिज़ के बीच बिट एक संख्या के मान की जांच करता है, इसे 5 तक विभाजित करता है, और शेष को 0 से तुलना करता है। यदि शेष 0 है तो संख्या 5 तक विभाजित है और फिर स्क्रीन पर प्रदर्शित होती है।

उदाहरण के लिए:

यदि आप पुनरावृत्ति के चरण आकार को बदलना चाहते हैं तो आप नंबर ++ अनुभाग संख्या = संख्या + 2 , संख्या = संख्या +5 , या संख्या = संख्या + 10 आदि में संशोधन कर सकते हैं।

इसे और संख्या + = 2 या संख्या + = 5 तक कम किया जा सकता है।

एक व्यावहारिक उदाहरण

लूप संख्याओं की पुनरावृत्ति सूचियों से अधिक कर सकते हैं। आप वास्तव में सूची के रूप में अन्य आदेशों के आउटपुट का उपयोग कर सकते हैं।

निम्न उदाहरण दिखाता है कि ऑडियो फ़ाइलों को एमपी 3 से WAV में कैसे परिवर्तित करें:

#! / Bin / bash

इस उदाहरण में सूची प्रत्येक फ़ोल्डर है जिसमें वर्तमान फ़ोल्डर में .MP3 एक्सटेंशन है और चर एक फ़ाइल है

एमपीजी कमांड एमपी 3 फ़ाइल को डब्ल्यूएवी में परिवर्तित करता है। हालांकि, आपको शायद इसे अपने पैकेज मैनेजर का उपयोग करके इंस्टॉल करना होगा।