बैश में फ़ंक्शन कैसे बनाएं और कॉल करें, इस पर एक त्वरित मार्गदर्शिका।
फ़ंक्शन पुन:प्रयोज्य कोड का एक ब्लॉक है जिसका उपयोग कुछ क्रिया करने के लिए किया जाता है। फ़ंक्शंस के साथ, हमें बेहतर मॉड्यूलरिटी और उच्च स्तर का कोड पुन:उपयोग मिलता है।
बैश कुछ अंतर्निहित कार्य प्रदान करता है जैसे कि echo
और read
, लेकिन हम अपने स्वयं के कार्य भी बना सकते हैं।
बैश में एक फंक्शन बनाना
बैश में फंक्शन बनाने के दो तरीके हैं:
एक तरीका केवल फ़ंक्शन नाम का उपयोग करना है, उदा:
functionName(){
// scope of function
}
कॉम्पैक्ट संस्करण:
functionName(){ echo "hello"; }
दूसरा तरीका function
. का उपयोग करके किसी फ़ंक्शन को घोषित करना है कीवर्ड:
function functionName {
// scope of function
}
कॉम्पैक्ट संस्करण:
function functionName { echo "hello"; }
ध्यान दें कि कैसे हमें ()
. की आवश्यकता नहीं है function
. का उपयोग करते समय फ़ंक्शन बनाने के लिए कीवर्ड।
बैश फ़ंक्शन के बारे में ध्यान देने योग्य महत्वपूर्ण बिंदु:
- घुंघराले ब्रेसिज़ के बीच का कोड
{}
फंक्शन बॉडी और स्कोप है - किसी फ़ंक्शन को कॉल करते समय, हम बैश स्क्रिप्ट में कहीं से भी फ़ंक्शन नाम का उपयोग करते हैं
- उपयोग किए जाने से पहले फ़ंक्शन को परिभाषित किया जाना चाहिए
- संक्षिप्त संस्करण का उपयोग करते समय, अंतिम कमांड में एक अर्धविराम होना चाहिए
;
उदाहरण:
निम्न कोड एक फ़ंक्शन बनाता है जो कंसोल पर "हैलो वर्ल्ड" प्रिंट करता है। फ़ंक्शन का नाम printHello . कहा जाता है :
#!/bin/bash
printHello(){
echo "Hello World!"
}
बैश में किसी फ़ंक्शन को कॉल करना
हम उपरोक्त फ़ंक्शन को कैसे कॉल करते हैं? आपको अपनी बैश स्क्रिप्ट में केवल फ़ंक्शन का नाम लिखना है और इसे कॉल किया जाएगा।
उदाहरण के लिए:
#!/bin/bash
printHello(){
echo "Hello World!"
}
# Call printHello function from anywhere in the script by writing the name
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!
केवल "हैलो, आई" आउटपुट हुआ।
ऐसा इसलिए है क्योंकि हमारे फ़ंक्शन को केवल 1 पैरामीटर $1
लेने के लिए डिज़ाइन किया गया है . शब्द "मुझे कोडिंग पसंद है!" वास्तव में 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