Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

बैश फंक्शन में महारत: कोड को कुशलतापूर्वक बनाएं, कॉल करें और पुन: उपयोग करें

बैश में फंक्शन बनाने और कॉल करने पर एक त्वरित गाइड।

एक फंक्शन पुन: प्रयोज्य कोड का एक ब्लॉक होता है जिसका उपयोग किसी कार्य को करने के लिए किया जाता है। फंक्शन के साथ, हमें बेहतर मॉड्यूलरिटी और कोड पुन: उपयोग की उच्च डिग्री मिलती है।

बैश कुछ बिल्ट-इन फंक्शन प्रदान करता है जैसे echo और read, लेकिन हम अपने स्वयं के फंक्शन भी बना सकते हैं।

बैश में फंक्शन बनाना

बैश में फंक्शन बनाने के दो तरीके हैं:

एक तरीका है केवल फंक्शन नाम का उपयोग करना, उदाहरण:

functionName(){ // फंक्शन का स्कोप } 

कॉम्पैक्ट संस्करण:

functionName(){ echo "hello"; } 

दूसरा तरीका है function कीवर्ड का उपयोग करके फंक्शन घोषित करना:

function functionName { // फंक्शन का स्कोप } 

कॉम्पैक्ट संस्करण:

function functionName { echo "hello"; } 

ध्यान दें कि function कीवर्ड का उपयोग करके फंक्शन बनाते समय हमें () की आवश्यकता नहीं होती।

बैश फंक्शन के बारे में ध्यान रखने योग्य महत्वपूर्ण बिंदु:

  • कर्ली ब्रेसेस {} के बीच का कोड फंक्शन बॉडी और स्कोप होता है
  • फंक्शन को कॉल करते समय, हम बैश स्क्रिप्ट में कहीं से भी केवल फंक्शन नाम का उपयोग करते हैं
  • फंक्शन का उपयोग करने से पहले उसे परिभाषित किया जाना चाहिए
  • कॉम्पैक्ट संस्करण का उपयोग करते समय, अंतिम कमांड में सेमीकोलन ; होना चाहिए

उदाहरण:

निम्न कोड एक फंक्शन बनाता है जो कंसोल पर "Hello World" प्रिंट करता है। फंक्शन का नाम printHello है:

#!/bin/bash printHello(){ echo "Hello World!" } 

बैश में फंक्शन कॉल करना

उपरोक्त फंक्शन को कैसे कॉल करें? आपको बस अपनी बैश स्क्रिप्ट में फंक्शन का नाम लिखना है और यह कॉल हो जाएगा।

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

#!/bin/bash printHello(){ echo "Hello World!" } # स्क्रिप्ट में कहीं से भी printHello फंक्शन को नाम लिखकर कॉल करें printHello 

आउटपुट:

"Hello World" 

आर्गुमेंट पास करना

उपरोक्त फंक्शन printHello() में कोई पैरामीटर नहीं है। जब भी हम इसे कॉल करते हैं, हमें "Hello World" आउटपुट मिलता है। लेकिन क्या होगा अगर हम एक अधिक जेनेरिक फंक्शन बनाना चाहें? उदाहरण के लिए, हम फंक्शन को कुछ आर्गुमेंट के साथ कॉल कर सकते हैं और यह वही प्रिंट करेगा जो हम इसे भेजते हैं।

इसके दो तरीके हैं।

पहला, हम printHello() फंक्शन को पास किए गए आर्गुमेंट को प्रिंट करने के लिए संशोधित कर सकते हैं:

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

#!/bin/bash printAny(){ echo "Hello " $1 } printAny World printAny DevQa printAny I love coding! 

आउटपुट:

Hello World Hello DevQA Hello I 

ध्यान दें कि तीसरा प्रिंट स्टेटमेंट printAny I love coding! केवल "Hello, I" आउटपुट करता है।

ऐसा इसलिए है क्योंकि हमारा फंक्शन केवल 1 पैरामीटर $1 लेने के लिए डिज़ाइन किया गया है। "I love coding!" शब्द वास्तव में 3 पैरामीटर हैं।

यदि हम इसे पूरा प्रिंट करना चाहते हैं तो हमें टेक्स्ट को कोट्स में रखना होगा

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

#!/bin/bash printAny(){ echo "Hello " $1 } printAny "I love coding!" 

आउटपुट:

Hello I love coding 

एक और उदाहरण, हम अंक भी पास कर सकते हैं:

#!/bin/bash add() { result=$(($1 + $2)) echo "Result is: $result" } add 1 2 

आउटपुट:

Result is: 3 

मान वापस करना

बैश फंक्शन मान भी वापस कर सकते हैं।

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

#!/bin/bash add() { result=$(($1 + $2)) } add 1 2 echo "The sum is: "$result 

आउटपुट:

The sum is: 3 

फंक्शन से मान वापस करने का एक और तरीका है परिणाम को एक वेरिएबल में असाइन करना जिसे आवश्यकतानुसार उपयोग किया जा सकता है।

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

#!/bin/bash add () { local result=$(($1 + $2)) echo "$result" } result="$(add 1 2)" echo "The sum is: "$result 

आउटपुट:

The sum is: 3 
  1. Microsoft Excel में DAYS और DAYS360 फंक्शन का उपयोग कैसे करें Microsoft Excel में DAYS और DAYS360 फंक्शन का उपयोग कैसे करें

    Microsoft Excel में DAYS फंक्शन दो तारीखों के बीच के दिनों की संख्या लौटाता है। सूत्र: DAYS (end_date, start_date)। DAYS360 फंक्शन 360-दिन के वर्ष (बारह 30-दिन के महीने) पर आधारित दो तारीखों के बीच के दिनों की संख्या लौटाता है, जिसका उपयोग कुछ अकाउंटिंग गणनाओं में किया जाता है। DAYS360 फंक्शन का सूत

  1. कस्टम Excel फ़ंक्शन कैसे बनाएं कस्टम Excel फ़ंक्शन कैसे बनाएं

    Microsoft Excel कई पूर्व-निर्धारित फ़ंक्शन के साथ आता है जो हमारे लिए अधिकतम काम करते हैं। हमें ज्यादातर मामलों में उन बिल्ट-इन फ़ंक्शन के अलावा किसी अन्य फ़ंक्शन की आवश्यकता नहीं होती है। लेकिन, क्या होगा यदि आपको कुछ कार्यक्षमता की आवश्यकता है जो किसी पूर्व-निर्धारित Excel फ़ंक्शन द्वारा प्रदान नह

  1. लिनक्स पर Aliases और Shell Functions कैसे बनाएं? लिनक्स पर Aliases और Shell Functions कैसे बनाएं?

    यदि आप GNU/Linux सिस्टम का अधिकतम लाभ उठाना चाहते हैं तो कमांड प्रॉम्प्ट्स और शेल स्क्रिप्ट्स जानना अभी भी आवश्यक है और जितना अधिक कोई कमांड लाइन पर काम करता है, उतना ही अधिक वह पाएगा कि उपयोग की जा रही अधिकांश कमांड्स उपलब्ध कमांड्स का एक बहुत छोटा सबसेट हैं। अधिकांश कार्य आदतन होते हैं और उपयोगकर्