शेल स्क्रिप्ट में फ़ंक्शन और तर्क
पुनः उपयोग योग्य फ़ंक्शन से अपनी स्क्रिप्ट व्यवस्थित कीजिए, तर्क भेजिए, मान लौटाइए और Bash में चर के स्कोप को समझिए।
शेल स्क्रिप्ट में फ़ंक्शन और तर्क, CoddyKit पर Linux कमांड लाइन में दक्षता का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Linux कमांड लाइन में दक्षता सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Linux कमांड लाइन में दक्षता पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
फ़ंक्शन क्यों?
आप चर, शर्तें और लूप लिख सकते हैं, लेकिन स्क्रिप्ट बड़ी होने पर उनमें दोहराव आने लगता है। फ़ंक्शन आपको तर्क के एक खंड को नाम देकर दोबारा उपयोग करने देते हैं, जिससे स्क्रिप्ट साफ़ और परीक्षण योग्य रहती हैं।
फ़ंक्शन परिभाषित करना
Bash फ़ंक्शन में एक नाम के बाद () और घुंघराले कोष्ठकों के भीतर उसका भाग होता है। उसे कॉल करने से पहले परिभाषित करें।
greet() {
echo 'Hello from a function'
}
greetआर्ग्युमेंट पास करना
फ़ंक्शन आर्ग्युमेंट को क्रम के अनुसार प्राप्त करते हैं: $1, $2 आदि। पूरी स्क्रिप्ट भी इसी तरह काम करती है।
greet() {
echo "Hello, $1"
}
greet Aliceसभी आर्ग्युमेंट एक साथ
$@ सभी आर्ग्युमेंट में फैलता है और $# उनकी संख्या देता है। यह परिवर्तनशील संख्या वाले सहायक फ़ंक्शन के लिए उपयोगी है।
show() {
echo "count: $#"
for a in "$@"; do echo "arg: $a"; done
}
show one two threeरिटर्न स्थिति कोड
return निकास स्थिति (0-255) सेट करता है, जिसमें 0 सफलता दर्शाता है। इसे $? से जाँचें।
is_even() {
if [ $(( $1 % 2 )) -eq 0 ]; then return 0; else return 1; fi
}
is_even 4 && echo evenवास्तविक मान लौटाना
चूँकि return केवल स्थिति देता है, इसलिए डेटा को echo से आउटपुट करें और कमांड प्रतिस्थापन के माध्यम से प्राप्त करें।
square() {
echo $(( $1 * $1 ))
}
result=$(square 5)
echo "result is $result"स्थानीय चर
डिफ़ॉल्ट रूप से Bash चर वैश्विक होते हैं। बाहरी चरों को बदलने से बचने के लिए फ़ंक्शन के भीतर local का उपयोग करें।
calc() {
local total=0
for n in "$@"; do total=$(( total + n )); done
echo $total
}
calc 1 2 3 4फ़ंक्शन का एक-दूसरे को कॉल करना
फ़ंक्शन एक-दूसरे को कॉल कर सकते हैं, जिससे छोटे हिस्सों को जोड़कर बड़ा व्यवहार बनाया जा सकता है।
double() { echo $(( $1 * 2 )); }
quad() { double $(double $1); }
quad 3डिफ़ॉल्ट आर्ग्युमेंट मान
जब कोई आर्ग्युमेंट अनुपलब्ध हो, तब वैकल्पिक मान देने के लिए पैरामीटर विस्तार का उपयोग करें।
greet() {
local name=${1:-World}
echo "Hello, $name"
}
greetएक व्यावहारिक सहायक
टाइमस्टैम्प उपसर्ग के साथ लॉगिंग जैसी दोबारा उपयोग की जाने वाली उपयोगिताओं के लिए फ़ंक्शन बहुत उपयोगी होते हैं।
log() {
echo "[INFO] $*"
}
log 'Backup started'
log 'Backup finished'स्क्रिप्ट व्यवस्थित करना
एक साफ़ तरीका यह है: सभी फ़ंक्शन ऊपर परिभाषित करें, फिर सबसे नीचे एक main फ़ंक्शन रखें जो उनका समन्वय करे। यह संरचित प्रोग्रामिंग जैसा है।
main() {
echo 'Running main'
}
main "$@"त्वरित जाँच
Bash फ़ंक्शन से गणना किया हुआ मान विश्वसनीय रूप से वापस कैसे प्राप्त करेंगे?
पुनरावलोकन
फ़ंक्शन स्क्रिप्ट को मॉड्यूलर बनाते हैं:
name() { ... }से परिभाषित करें- आर्ग्युमेंट
$1,$@,$#होते हैं return= स्थिति;echo+$()= मानlocalचरों का दायरा सीमित रखता है
छोटे फ़ंक्शन जोड़ें और main से उनका समन्वय करें।
एआई शिक्षक के साथ Linux कमांड लाइन में दक्षता सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “शेल स्क्रिप्ट में फ़ंक्शन और तर्क” पाठ निःशुल्क है?
हाँ—“शेल स्क्रिप्ट में फ़ंक्शन और तर्क” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Linux कमांड लाइन में दक्षता पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Linux कमांड लाइन में दक्षता पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“शेल स्क्रिप्ट में फ़ंक्शन और तर्क” में मैं क्या सीखूँगा?
पुनः उपयोग योग्य फ़ंक्शन से अपनी स्क्रिप्ट व्यवस्थित कीजिए, तर्क भेजिए, मान लौटाइए और Bash में चर के स्कोप को समझिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Linux कमांड लाइन में दक्षता का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Linux कमांड लाइन में दक्षता शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Linux कमांड लाइन में दक्षता शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“शेल स्क्रिप्ट में फ़ंक्शन और तर्क” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Linux कमांड लाइन में दक्षता पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Linux कमांड लाइन में दक्षता पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- वेरिएबल, इनपुट और आउटपुट
- सशर्त कथन: `if`, `else`, `case`
- लूप: `for`, `while`, `until`
- शेल स्क्रिप्ट में फ़ंक्शन और तर्क