Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत · पाठ

Bash स्क्रिप्ट में फ़ंक्शन

फ़ंक्शन की सहायता से अपने कोड को व्यवस्थित करें, पुनः उपयोग को बढ़ावा दें और अपनी स्क्रिप्ट को अधिक साफ़ तथा रखरखाव में आसान बनाएँ।

पाठ 2, कुल 4 में से11 चरण

Bash स्क्रिप्ट में फ़ंक्शन, CoddyKit पर Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Bash फ़ंक्शन क्या हैं?

Bash स्क्रिप्टिंग में फ़ंक्शन कोड का ऐसा खंड है जो कोई विशेष कार्य करता है। इसे अपनी मुख्य स्क्रिप्ट के भीतर मौजूद छोटी स्क्रिप्ट की तरह समझें।

फ़ंक्शन आपकी सहायता करते हैं:

  • कोड का पुनः उपयोग: तर्क को एक बार लिखकर कई बार कॉल करें।
  • स्क्रिप्ट व्यवस्थित करना: जटिल कार्यों को छोटे, प्रबंधनीय भागों में बाँटें।
  • पठनीयता सुधारना: अपनी स्क्रिप्ट को समझना और उसका रखरखाव करना आसान बनाएँ।

सरल फ़ंक्शन परिभाषित करना

Bash में फ़ंक्शन परिभाषित करने के दो सामान्य तरीके हैं। दोनों से एक ही परिणाम मिलता है। पहला सिंटैक्स सबसे अधिक प्रचलित है।

यह उदाहरण चलाकर देखें। इसमें फ़ंक्शन परिभाषित किए गए हैं, लेकिन अभी उन्हें कॉल नहीं किया गया है!

#!/bin/bash

# Method 1: The most common way
my_first_func () {
  echo "Hello from my_first_func!"
}

# Method 2: Using the 'function' keyword
function my_second_func {
  echo "Hello from my_second_func!"
}

echo "Functions defined, but not called."

अपने फ़ंक्शन कॉल करना

किसी फ़ंक्शन को परिभाषित करने से वह निष्पादित नहीं होता। फ़ंक्शन के अंदर का कोड चलाने के लिए, किसी भी अन्य कमांड की तरह, बस उसके नाम से उसे कॉल करें।

देखें कि परिभाषित करने के बाद हम my_function को कैसे कॉल करते हैं:

#!/bin/bash

my_function () {
  echo "This message is from inside the function."
}

echo "Script started."
my_function # Call the function here
echo "Script finished."

फ़ंक्शन में स्थानीय चर

डिफ़ॉल्ट रूप से, Bash फ़ंक्शन के अंदर परिभाषित चर वैश्विक होते हैं, यानी स्क्रिप्ट में कहीं से भी उन तक पहुँचा और उन्हें बदला जा सकता है।

अनचाहे दुष्प्रभावों को रोकने और अपने फ़ंक्शन को अलग रखने के लिए, किसी चर को स्थानीय घोषित करने हेतु local कीवर्ड का उपयोग करें। स्थानीय चर केवल उसी फ़ंक्शन के भीतर मौजूद रहते हैं।

#!/bin/bash

global_message="I'm a global message"

my_function () {
  local func_message="I'm a local message"
  global_message="I've been changed by the function!"
  echo "Inside func: $func_message"
  echo "Inside func: $global_message"
}

echo "Before func: $global_message"
my_function
echo "After func: $global_message"
echo "After func: $func_message (This will be empty)"

फ़ंक्शन को तर्क देना

सामान्य शेल कमांड की तरह, आप तर्कों का उपयोग करके अपने फ़ंक्शन में जानकारी भेज सकते हैं। फ़ंक्शन के अंदर इन तर्कों तक विशेष चरों के माध्यम से पहुँचा जाता है:

  • $1, $2, $3...: अलग-अलग तर्क
  • $#: तर्कों की कुल संख्या
  • $@: अलग-अलग स्ट्रिंग के रूप में सभी तर्क
#!/bin/bash

greet_user () {
  echo "Hello, $1!"
  echo "You are $2 years old."
  echo "Total arguments received: $#"
  echo "All arguments: $@"
}

echo "Calling greet_user with two arguments:"
greet_user "Alice" 30

echo "\nCalling greet_user with one argument:"
greet_user "Bob"

फ़ंक्शन की निकास स्थिति (रिटर्न)

किसी भी कमांड की तरह, फ़ंक्शन भी निकास स्थिति लौटाता है। परंपरा के अनुसार, 0 सफलता दर्शाता है और कोई भी गैर-शून्य मान त्रुटि दर्शाता है।

इस निकास स्थिति को निर्धारित करने के लिए return कीवर्ड का उपयोग करें। फ़ंक्शन कॉल के तुरंत बाद विशेष चर $? का उपयोग करके इसकी जाँच की जा सकती है।

#!/bin/bash

check_age () {
  local age=$1
  if [ "$age" -ge 18 ]; then
    return 0 # Success: 18 or older
  else
    return 1 # Failure: under 18
  fi
}

check_age 25
echo "Exit status for 25: $?"

check_age 16
echo "Exit status for 16: $?"

if check_age 20; then
  echo "User is an adult."
else
  echo "User is a minor."
fi

फ़ंक्शन का आउटपुट प्राप्त करना

जहाँ return निकास स्थिति भेजता है, वहीं यदि आप चाहते हैं कि फ़ंक्शन ऐसा 'मान' दे जिसे किसी चर में संग्रहीत किया जा सके, तो फ़ंक्शन को उस मान को मानक आउटपुट में echo करना चाहिए।

इसके बाद फ़ंक्शन कॉल को $(...) में रखकर कमांड प्रतिस्थापन का उपयोग करते हुए इस आउटपुट को प्राप्त करें।

#!/bin/bash

get_full_name () {
  local first_name=$1
  local last_name=$2
  echo "$first_name $last_name" # Echo the full name
}

name="$(get_full_name "John" "Doe")"

echo "Full name captured: $name"

calculate_area () {
  local length=$1
  local width=$2
  echo $((length * width))
}

area=$(calculate_area 10 5)
echo "Calculated area: $area"

व्यावहारिक उदाहरण: लॉगर

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

#!/bin/bash

log_message () {
  local timestamp=$(date +"%Y-%m-%d %H:%M:%S")
  local message="$1"
  echo "[$timestamp] $message"
}

log_message "Script execution started."
sleep 1 # Simulate some work
log_message "Processing user data..."
sleep 1
log_message "Operation completed successfully."

फ़ंक्शन लिखने की अच्छी प्रक्रियाएँ

फ़ंक्शन वाली स्पष्ट और आसानी से रखरखाव योग्य स्क्रिप्ट लिखने के लिए इन सुझावों पर विचार करें:

  • इसे सरल रखें: प्रत्येक फ़ंक्शन को एक कार्य अच्छी तरह करना चाहिए।
  • अर्थपूर्ण नाम: validate_input या create_backup जैसे वर्णनात्मक नामों का उपयोग करें।
  • local का उपयोग करें: टकराव से बचने के लिए फ़ंक्शन के अंदर चरों के साथ हमेशा local का उपयोग करें।
  • टिप्पणियाँ जोड़ें: समझाएँ कि आपका फ़ंक्शन क्या करता है, उसके तर्क क्या हैं और वह क्या लौटाता है।
  • इनपुट की जाँच करें: यदि फ़ंक्शन को कुछ विशेष तर्क अपेक्षित हैं, तो उनकी जाँच करें।

फ़ंक्शन तर्क की जाँच

Bash फ़ंक्शन में तर्क कैसे भेजे और उन तक कैसे पहुँचा जाता है, इसकी अपनी समझ जाँचें।

फ़ंक्शन: पुनरावलोकन और अगले चरण

बहुत अच्छा! आपने Bash फ़ंक्शन में अच्छी महारत हासिल कर ली है।

आपने सीखा:

  • फ़ंक्शन परिभाषित करना और कॉल करना।
  • चर के कार्यक्षेत्र के लिए local का उपयोग करना।
  • $1, $#, $@ के साथ तर्क भेजना।
  • return के साथ निकास स्थिति निर्धारित करना।
  • echo और कमांड प्रतिस्थापन के साथ आउटपुट प्राप्त करना।

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

शुरुआत निःशुल्क

एआई शिक्षक के साथ Bash सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
22
पाठ
88

अक्सर पूछे जाने वाले प्रश्न

क्या “Bash स्क्रिप्ट में फ़ंक्शन” पाठ निःशुल्क है?

हाँ—“Bash स्क्रिप्ट में फ़ंक्शन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Bash स्क्रिप्ट में फ़ंक्शन” में मैं क्या सीखूँगा?

फ़ंक्शन की सहायता से अपने कोड को व्यवस्थित करें, पुनः उपयोग को बढ़ावा दें और अपनी स्क्रिप्ट को अधिक साफ़ तथा रखरखाव में आसान बनाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“Bash स्क्रिप्ट में फ़ंक्शन” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. लूप संरचनाएँ (for, while)
  2. Bash स्क्रिप्ट में फ़ंक्शन
  3. स्क्रिप्ट तर्क और विकल्प ($@, $#, getopts)
  4. case कथन और पैटर्न मिलान
← Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पर वापस जाएँ