यह लेख बताएगा कि Bash स्क्रिप्ट में फ़ंक्शन का उपयोग कैसे करें – आपके कोड का पुन: उपयोग करने और आपकी स्क्रिप्ट को सरल बनाने में मदद करता है।
कई बार कोड क्यों लिखें जब आप इसे एक बार लिख सकते हैं और पुन: उपयोग कर सकते हैं?
यही फ़ंक्शन करने देते हैं।
यह लेख Bash/Shell स्क्रिप्ट में फ़ंक्शन के उपयोग को रेखांकित करता है।
फ़ंक्शन क्या है?
एक फ़ंक्शन पुन: प्रयोज्य कोड का एक टुकड़ा है। फ़ंक्शन पैरामीटर स्वीकार कर सकते हैं, जो उन्हें विभिन्न इनपुट पर समान दोहराने योग्य क्रियाएं करने की अनुमति देते हैं।
फ़ंक्शन आमतौर पर कोई भी क्रिया करते हैं, परिणाम आउटपुट या प्रिंट करते हैं, या भविष्य के उपयोग के लिए मान वापस करते हैं।
फ़ंक्शन क्यों उपयोग करें?
एक उदाहरण के रूप में, आपके पास एक स्क्रिप्ट हो सकती है जो ईमेल नोटिफिकेशन भेजती है कि कुछ हुआ है। यदि आप कई अलग-अलग प्राप्तकर्ताओं को कई अलग-अलग ईमेल भेजना चाहते हैं, तो आप स्क्रिप्ट में कई बार वही ईमेल-भेजने वाला कोड लिख सकते हैं ताकि संदेश भेजे जा सकें।
एक फ़ंक्शन का उपयोग करके, आप इस कोड को केवल एक बार लिख सकते हैं, फिर इसे अलग-अलग प्राप्तकर्ताओं, विषयों और संदेशों के साथ कॉल कर सकते हैं, डुप्लिकेट कोड के बजाय एक सिंगल लाइन फ़ंक्शन कॉल के साथ।
Bash फ़ंक्शन सिंटैक्स
Bash/Shell स्क्रिप्ट में फ़ंक्शन लिखने का सिंटैक्स इस प्रकार है:
name_of_function () { # COMMANDS # Optional return value }
ध्यान दें कि:
- name_of_function वह नाम है जिसे आप अपने फ़ंक्शन को कॉल करने के लिए उपयोग करना चाहते हैं
- केवल अल्फ़ान्यूमेरिक कैरेक्टर और अंडरस्कोर!
- फ़ंक्शन नाम के बाद () (मानक ब्रैकेट) होना चाहिए
- ब्रैकेट के आसपास स्पेस ध्यान दें! वे आवश्यक हैं!
- आप जो कोड फ़ंक्शन को निष्पादित करना चाहते हैं वह {} (कर्ली ब्रैकेट) में लपेटा होना चाहिए
- इन कर्ली ब्रैकेट के बाहर कोई भी कोड फ़ंक्शन का हिस्सा नहीं है और निष्पादित नहीं किया जाएगा।
- COMMANDS आपके Linux सिस्टम पर आमतौर पर उपलब्ध कोई भी कमांड हो सकते हैं
- आप वैकल्पिक रूप से return एक मान कर सकते हैं – उपयोग के लिए नीचे उदाहरण देखें
- किसी फ़ंक्शन को जल्दी समाप्त करने के लिए, आप बिना मान के return कॉल करके फ़ंक्शन से बाहर निकल सकते हैं
- विशेष $? वेरिएबल अंतिम निष्पादित कमांड से वापस किए गए मान को रखेगा, जिससे यह फ़ंक्शन चलने के बाद आपकी स्क्रिप्ट में कहीं और उपलब्ध हो जाएगा
उदाहरण और व्याख्या
यहां एक उदाहरण है जो सभी अलग-अलग Bash फ़ंक्शन तत्वों को दर्शाता है – टिप्पणियों के साथ जो समझाते हैं कि सब कुछ क्या कर रहा है।
#!/bin/bash # एक ग्लोबल वेरिएबल परिभाषित करें - स्क्रिप्ट में कहीं भी उपलब्ध क्योंकि यह फ़ंक्शन या लूप के अंदर परिभाषित नहीं है initial_value=3 # एक फ़ंक्शन परिभाषित करें जो कुछ गणित करता है my_math_function () { # फ़ंक्शन को पास किए गए पैरामीटर प्राप्त करें # पैरामीटर फ़ंक्शन नाम के बाद पास किए जाते हैं जब फ़ंक्शन को कॉल किया जाता है, और उपस्थिति के क्रम में नामित किए जाएंगे, $1 से शुरू होकर, फिर $2, आदि # नीचे, इन पैरामीटर मानों को स्थानीय वेरिएबल को असाइन किया जाता है - केवल फ़ंक्शन के अंदर उपलब्ध - ताकि यह बताना आसान हो कि वे क्या हैं local multiplier_value=$1 local addition_value=$2 # परिणाम की गणना करें और इसे एक स्थानीय वेरिएबल को असाइन करें # गणना को लपेटने वाले $(( )) पर ध्यान दें - यह स्क्रिप्ट को इन गणनाओं के परिणाम को परिणाम वेरिएबल को असाइन करने के लिए कहता है, बजाय गणनाओं को टेक्स्ट मान के रूप में असाइन करने के local result=$(( $initial_value * $multiplier_value + $addition_value )) # परिणाम को कंसोल पर प्रिंट करें # फ़ंक्शन का उपयोग कैसे किया जाता है इस पर निर्भर करते हुए, फ़ंक्शन से टेक्स्ट आउटपुट का उपयोग इससे परिणाम पढ़ने के लिए किया जा सकता है echo $result # फ़ंक्शन से आउटपुट प्राप्त करने के लिए रिटर्न मान का उपयोग करना भी संभव है return $result } # फ़ंक्शन को अलग-अलग इनपुट पैरामीटर के साथ कॉल करें # पैरामीटर फ़ंक्शन को टाइप करके पास किए जाते हैं, स्पेस से अलग # उपरोक्त फ़ंक्शन दो पैरामीटर की अपेक्षा करता है - एक multiplier_value और addition_value my_math_function 2 4 # 10 आउटपुट करेगा (2 * 3 + 4) my_math_function 3 5 # 14 आउटपुट करेगा (3 * 3 + 5) # $? Bash स्क्रिप्ट में एक विशेष वेरिएबल है जो हमेशा अंतिम निष्पादित कमांड से रिटर्न मान रखता है # इसका उपयोग फ़ंक्शन से रिटर्न मान के रूप में निर्दिष्ट मान प्राप्त करने के लिए किया जा सकता है। echo $? # 14 आउटपुट करेगा # फ़ंक्शन के परिणाम को वेरिएबल को असाइन करें # यह फ़ंक्शन द्वारा आउटपुट किसी भी टेक्स्ट (उदाहरण के लिए echo कमांड का उपयोग करके) को वेरिएबल को असाइन करेगा my_result=$(my_math_function 6 7) echo $my_result # 25 आउटपुट करेगा (6 * 3 + 7)
Linux शेल स्क्रिप्ट में '#!' क्या है?
अपने शेल स्क्रिप्ट को मान पास करना चाहते हैं (ताकि आप उन्हें इसमें फ़ंक्शन को पास कर सकें)? इस लेख को देखें।