10 कूल और विस्मयकारी बैश लूप उदाहरण

10 Kula Aura Vismayakari Baisa Lupa Udaharana



प्रोग्रामिंग लैंग्वेज में मुख्य रूप से तीन तरह के लूप होते हैं (फॉर, वेट, और जब तक)। तीनों प्रकार के पाश अलग-अलग तरीकों से महत्वपूर्ण हैं। थोड़ी देर और जब तक लूप के बीच बहुत अंतर नहीं है, लेकिन लूप के लिए इन दोनों से काफी अलग काम करता है। इसलिए आप बैश उपयोगकर्ता के रूप में इंटरैक्टिव स्क्रिप्ट बनाने के लिए इन लूप का उपयोग कर सकते हैं।

इसलिए बैश उदाहरण सीखने से आपको स्क्रिप्ट बनाने में अपने कौशल में सुधार करने में मदद मिल सकती है। तो इस ट्यूटोरियल में, हम 10 कूल और भयानक बैश लूप उदाहरण शामिल करेंगे जिन्हें आप अपने स्क्रिप्टिंग कौशल को बढ़ाने की कोशिश कर सकते हैं।







10 कूल और विस्मयकारी बैश लूप उदाहरण

इस भाग में, हम विभिन्न उदाहरणों और उन विधियों की व्याख्या करेंगे जिनका हमने लूपों में उपयोग किया है।



बैश में लूप के साथ Seq कमांड

संख्याओं का क्रम बनाने के लिए आप for लूप में seq कमांड का उपयोग कर सकते हैं। उदाहरण के लिए, आपके पास एक बैश स्क्रिप्ट 'File.sh' है जिसमें निम्न कोड है:



#!/बिन/बैश
के लिये में $ ( स्व-परीक्षा प्रश्न 5 दो 25 )
करना
गूंज 'किसी की संख्या $ए हैं'
किया हुआ





टर्मिनल में स्क्रिप्ट निष्पादित करने के बाद आपको निम्न परिणाम मिलेगा:

. / file.sh




लूप का उपयोग करके फ़ाइलों का नाम बदलें

बैश स्क्रिप्ट का उपयोग करके, आप लूप के लिए एकाधिक फ़ाइलों का नाम बदलने के लिए उपयोग कर सकते हैं। उदाहरण के लिए, आपके पास एकाधिक .txt फ़ाइलें हैं और नाम के साथ वर्तमान दिनांक जोड़ना चाहते हैं। तो यहाँ उदाहरण स्क्रिप्ट है जिसका आप उपयोग कर सकते हैं:

#!/बिन/बैश
के लिये में $ ( रास * ।टेक्स्ट ) ; करना
एमवी $ए ( बेसनाम $ए ।टेक्स्ट ) _ $ ( दिनांक % डी % एम % ) ।टेक्स्ट
किया हुआ


अब, आप स्क्रिप्ट चला सकते हैं, और यह वर्तमान दिनांक जोड़कर सभी .txt फ़ाइलों का नाम बदल देगी:

. / MyFile.sh



इसी तरह, आप किसी फ़ाइल के एक्सटेंशन को एक स्क्रिप्ट के माध्यम से बदल सकते हैं। तो चलिए निम्नलिखित स्क्रिप्ट के माध्यम से .txt एक्सटेंशन को .sh में बदलते हैं:

#!/बिन/बैश
के लिये फ़ाइल में * ।टेक्स्ट; करना
एमवी -- ' $ फ़ाइल ' '{फ़ाइल%.txt}.श'
किया हुआ

टर्मिनल में स्क्रिप्ट निष्पादित करने के बाद, आपको .txt फ़ाइलों के बजाय .sh प्राप्त होगी:

. / MyFile.sh


बैश में अनंत लूप के लिए

जब लूप में समाप्ति की कोई स्थिति परिभाषित नहीं होती है, तो इसे अनंत लूप कहा जाता है। बैश लूप के इस उदाहरण में, हम बैश में अनंत फॉर लूप देखेंगे। लूप के लिए निम्नलिखित अनंत को एक डबल अर्धविराम (;;) द्वारा परिभाषित किया गया है और इसमें कोई प्रारंभिक, क्रिया या समाप्ति भाग नहीं है।

नीचे दी गई स्क्रिप्ट तब तक जारी रहेगी जब तक आप इनपुट के रूप में Ctrl+C दबाते हैं या 'छोड़ें' टाइप करते हैं। यह स्क्रिप्ट इनपुट के रूप में दिए गए 10 से 50 तक हर नंबर को प्रिंट करेगी। अन्यथा, यह 'संख्या सीमा से बाहर है' प्रिंट करेगा।

#!/बिन/बैश
#अनंत लूप
के लिये ( ( ; ; ) )
करना
गूंज '10 से 50 के बीच कोई संख्या दर्ज करें'
पढ़ना एन
यदि [ $n == 'छोड़ना' ]
फिर
गूंज 'समाप्त'
बाहर निकलना 0
होना
यदि ( ( $n < 10 || $n > पचास ) )
फिर
गूंज 'संख्या सीमा से बाहर है'
वरना
गूंज 'संख्या है $n '
होना
किया हुआ

हमने उपरोक्त स्क्रिप्ट पर 45 और 23 मान्य इनपुट दिए। उसके बाद, हम 2 को इनपुट के रूप में प्रिंट करते हैं जो आउटपुट में बताता है कि 'संख्या सीमा से बाहर है।' उसके बाद, स्क्रिप्ट को बंद करने के लिए, हम इनपुट के रूप में टाइप करते हैं। यहां आप अनंत लूप से बाहर निकलने के लिए Ctrl+C भी दबा सकते हैं।

बैश में तीन अभिव्यक्ति लूप

तीन-अभिव्यक्ति पाश के नाम से ही ज्ञात होता है कि इसमें तीन भाव समाहित होते हैं, जिन्हें नियंत्रण व्यंजक भी कहते हैं। पहला एक्सप्रेशन (EXP1) इनिशियलाइज़र है, दूसरा एक्सप्रेशन (EXP2) लूप टेस्ट या कंडीशन है, और तीसरा एक्सप्रेशन (EXP3) काउंटिंग एक्सप्रेशन / स्टेप है। आइए हम बैश में तीन-अभिव्यक्ति लूप चलाते हैं:

#!/बिन/बैश
के लिये ( ( एन = 5 ; एन > = 1 ; एन-- ) )
करना
गूंज 'किताब $n '
किया हुआ

उपरोक्त स्क्रिप्ट को रन करने पर आपको निम्न आउटपुट मिलेगा।

एकाधिक शर्तों के साथ लूप

हमने निम्नलिखित बैश लूप उदाहरण में कई शर्तों के साथ तक लूप का उपयोग किया है। इस Script में हमने “m” और “n” दो वेरिएबल लिए जिनकी वैल्यू क्रमशः 20 और 10 है, और 15 की लिमिट रखी है। यहाँ हमने “m” और “n” कंडीशंस को एक साथ लूप में रखा है, जिसमें लूप तब तक चलेगा जब तक कि 'm' का मान सीमा से कम और 'n' की सीमा से अधिक न हो जाए।

#!/बिन/बैश
सीमा = पंद्रह
एम = बीस
एन = 10
तक [ [ $ मी -ले $ सीमा || $n -जी.टी $ सीमा ] ] ;
करना
गूंज 'यदि एम = $ मी फिर एन = $n '
( ( एम-- ) )
( ( एन ++ ) )
किया हुआ

आप देख सकते हैं कि उपरोक्त स्क्रिप्ट को चलाना तब तक चलेगा जब तक कि 'm' और 'n' के मान समान स्तर पर नहीं आ जाते।

बैश में फ़ाइल पढ़ें

बैश में, आप फ़ाइल की सामग्री को कई तरीकों से पढ़ सकते हैं। बैश लूप के इस उदाहरण में, हम फ़ाइल नाम के माध्यम से फ़ाइल की सामग्री को पढ़ेंगे। फ़ाइल को बैश में पढ़ने के लिए हम निम्न स्क्रिप्ट का उपयोग कर सकते हैं:

#!/बिन/बैश
गूंज 'दर्ज की गई फ़ाइल की सामग्री है:'
जबकि
पढ़ना रेखा
करना
गूंज $ लाइन
किया हुआ < ~ दस्तावेज़ / Linuxhint.txt

उपरोक्त स्क्रिप्ट चलाने के बाद, आप दर्ज की गई फ़ाइल की पूरी सामग्री पढ़ सकते हैं।

फ़ाइल में लिखना

टर्मिनल से फ़ाइल को संपादित करने के लिए आप स्क्रिप्ट में लूप का उपयोग कर सकते हैं। उदाहरण के लिए, यदि हमारे पास एक txt फ़ाइल 'Example.txt' है और हम कुछ जानकारी जोड़ना चाहते हैं, तो हम निम्नलिखित स्क्रिप्ट का उपयोग कर सकते हैं:


यदि आप उपरोक्त स्क्रिप्ट चलाते हैं, तो यह आपसे विवरण दर्ज करने के लिए कहेगा:


विवरण दर्ज करने के बाद, कृपया फ़ाइल को सहेजने के लिए CTRL + D और प्रक्रिया को सफलतापूर्वक समाप्त करने के लिए CTRL + Z करें।

बैश में ब्रेक एंड कंटिन्यू स्टेटमेंट लूप

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

#!/बिन/बैश
एक पर = 16
तक असत्य
करना
( ( एक पर-- ) )
यदि [ [ $ संख्या -eq 13 ] ]
फिर
जारी रखें
elif [ [ $ संख्या - द 4 ] ]
फिर
टूटना
होना
गूंज 'लिनक्सहिंट = $ संख्या '
किया हुआ

निम्नलिखित बैश स्क्रिप्ट में, आप देख सकते हैं कि जब 'संख्या' 13 के बराबर होती है, तो यह बाकी लूप बॉडी को छोड़ देती है और अगले पुनरावृत्ति पर कूद जाती है। इसी तरह, लूप टूट जाएगा जब 'संख्या' 4 से कम या उसके बराबर होगी।


उपरोक्त स्क्रिप्ट से पता चलता है कि लूप 15 से शुरू होता है, 13 पर टूटता है, और 5 तक जारी रहता है।

बैश में औसत की गणना

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

#!/बिन/बैश
निशान = '0'
औसत = '0'
जोड़ = '500'
एक पर = '5'
जबकि सच ; करना
गूंज -एन 'अपने अंक दर्ज करें या निरस्त करने के लिए 'क्यू' दबाएं' ; पढ़ना निशान;
यदि ( ( ' $ निशान ' < '0' ) ) || ( ( ' $ निशान ' > '100' ) ) ; फिर
गूंज 'कृपया अपने अंक दर्ज करें'
elif [ ' $ निशान ' == 'क्यू' ] ; फिर
गूंज 'औसत अंक हैं: $औसत %'
टूटना
वरना
जोड़ = $ [ $योग + $ निशान ]
एक पर = $ [ $NUM + 1 ]
औसत = $ [ $योग / $NUM ]
होना
किया हुआ

यदि इनपुट सीमा के भीतर नहीं है, तो एक संदेश मुद्रित होता है कि 'कृपया अपने अंक दर्ज करें।' जब उपयोगकर्ता सभी अंक दर्ज करने के बाद 'क्यू' दबाता है, तो स्क्रिप्ट दर्ज की गई सभी संख्याओं के अनुमानित औसत की गणना करती है।

जब ऊपर दी गई script को run किया जाता है तो आपका Output कुछ इस तरह का होगा।

बैश में कमांड-लाइन तर्क पढ़ें

बैश में, आप लूप का उपयोग करके एकल कमांड-लाइन तर्क पढ़ सकते हैं। स्क्रिप्ट स्वरूपित तर्क मानों को प्रिंट करती है। हम निम्न स्क्रिप्ट में थोड़ी देर लूप का उपयोग करके बैश में कमांड लाइन तर्क चलाते हैं। इसके जरिए आप सिंगल कमांड की मदद से आर्ग्युमेंट वैल्यू वैलिड ऑप्शन पास करने वाले वैल्यू को प्रिंट करेंगे।

#!/बिन/बैश
जबकि getopts एन: एफ: एम: ऑप्ट
करना
मामला ' ${ऑप्ट} '
में
एन ) नाम = ${OPTARG} ;;
एफ ) पिता का नाम = ${OPTARG} ;;
एम ) माँ का नाम = ${OPTARG} ;;
* ) गूंज 'अमान्य'
बाहर निकलना 1 ;;
esac
किया हुआ
printf 'नाम: $ नाम \एन पिता का नाम: $Fathername \एन माँ का नाम: $मातृनाम \एन '

इस प्रकार, आप उपरोक्त स्क्रिप्ट को बैश में चलाकर स्वरूपित तर्क मानों को आउटपुट में प्रिंट कर सकते हैं।

ऊपर लपेटकर

तो यह थी संक्षिप्त जानकारी 10 शानदार और शानदार बैश लूप उदाहरणों के बारे में जिन्हें आप सीख सकते हैं। इंटरएक्टिव स्क्रिप्ट को आसानी से बनाने के लिए हमने विभिन्न प्रकार के लूप का उपयोग किया है। इसके अलावा, हमने उपरोक्त उदाहरणों में उपयोग किए जाने वाले बुनियादी तरीकों को भी समझाया। यदि आपके पास बैश में लूप के बारे में विस्तृत जानकारी है, तो अधिक जानने के लिए कृपया हमारी आधिकारिक वेबसाइट पर जाएँ।