शेल फ़ंक्शन और पुनः उपयोग योग्य अंश
अपने शेल के लिए कमांडों को पुनः उपयोग योग्य, पैरामीटरयुक्त निर्माण-खंडों में व्यवस्थित करने हेतु Bash फ़ंक्शन परिभाषित करना और उनका उपयोग करना सीखें।
शेल फ़ंक्शन और पुनः उपयोग योग्य अंश, CoddyKit पर Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
शेल फ़ंक्शन क्यों
शेल फ़ंक्शन कई कमांडों को एक नाम के अंतर्गत समूहित करता है, ताकि उन्हें दोबारा टाइप किए बिना फिर से उपयोग किया जा सके।
- कमांडों को कॉपी-पेस्ट करने से तेज़
- लंबे उपनामों से अधिक साफ़
- उपनामों के विपरीत, तर्क स्वीकार कर सकता है
mkcd() {
mkdir -p "$1" && cd "$1"
}फ़ंक्शन परिभाषित करना
सबसे सरल रूप में name() { ... } वाक्यविन्यास का उपयोग होता है। घुंघराले कोष्ठकों के भीतर की कमांड तब चलती हैं जब आप फ़ंक्शन को उसके नाम से बुलाते हैं।
greet() {
echo "Hello from a function"
}
greetफ़ंक्शन के तर्क
फ़ंक्शन को स्क्रिप्ट की तरह स्थितीय पैरामीटर मिलते हैं: $1, $2। $# गिनती है और $@ सभी तर्कों का विस्तार करता है।
backup() {
cp "$1" "$1.bak"
echo "Backed up $1"
}
backup notes.txtवापसी मान और निकास स्थिति
फ़ंक्शन return N (0-255) के माध्यम से निकास स्थिति लौटाते हैं। इसका उपयोग सफलता या विफलता की जाँच के लिए करें, डेटा लौटाने के लिए नहीं।
is_root() {
[ "$(id -u)" -eq 0 ] && return 0 || return 1
}
if is_root; then echo root; else echo normal; fiecho से आउटपुट लौटाना
चूँकि return केवल स्थिति कोड ले जाता है, वास्तविक आउटपुट $( ) से दिखाया और पकड़ा जाता है।
timestamp() {
date +%Y%m%d-%H%M%S
}
name="log-$(timestamp).txt"
echo "$name"स्थानीय चर
डिफ़ॉल्ट रूप से फ़ंक्शन के भीतर के चर वैश्विक होते हैं। किसी चर का दायरा फ़ंक्शन तक सीमित रखने और अपने शेल को अनावश्यक चरों से बचाने के लिए local का उपयोग करें।
count_lines() {
local n
n=$(wc -l < "$1")
echo "$1 has $n lines"
}डिफ़ॉल्ट तर्क मान
जब कोई तर्क न दिया गया हो, तब डिफ़ॉल्ट मान अपनाने के लिए पैरामीटर विस्तार ${1:-default} का उपयोग करें।
say() {
local msg="${1:-Hello World}"
echo "$msg"
}
say
say "Custom message"फ़ंक्शन बनाम उपनाम
उपनाम केवल टेक्स्ट का स्थान लेते हैं और स्थितीय तर्कों को ठीक से स्वीकार नहीं कर सकते। फ़ंक्शन शाखाएँ बना सकते हैं, लूप चला सकते हैं और इनपुट संसाधित कर सकते हैं।
- निश्चित शॉर्टकट के लिए उपनाम का उपयोग करें
- तर्क या तर्क-विधि की आवश्यकता होने पर फ़ंक्शन का उपयोग करें
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }फ़ंक्शन को स्थायी बनाना
प्रॉम्प्ट पर परिभाषित फ़ंक्शन शेल के बंद होते ही गायब हो जाते हैं। उन्हें ~/.bashrc में जोड़ें, ताकि वे हर सत्र में उपलब्ध रहें।
# Append to ~/.bashrc
extract() {
case "$1" in
*.tar.gz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*) echo "Unknown format" ;;
esac
}फ़ंक्शन की सूची बनाना और हटाना
declare -F फ़ंक्शन के नामों की सूची दिखाता है; declare -f name उसका मुख्य भाग दिखाता है। unset -f name से फ़ंक्शन हटाएँ।
declare -F
declare -f greet
unset -f greetफ़ंक्शनों को एक साथ संयोजित करना
फ़ंक्शन अन्य फ़ंक्शन को कॉल कर सकते हैं, जिससे छोटे पुनः उपयोग योग्य हिस्सों को मिलाकर बड़े उपकरण बनाए जा सकते हैं।
log() { echo "[$(date +%T)] $*"; }
deploy() {
log "Starting deploy"
log "Done"
}
deployत्वरित जाँच
शेल फ़ंक्शन की अपनी समझ की जाँच करें।
पुनरावलोकन
आपने पुनः उपयोग योग्य शेल फ़ंक्शन बनाना सीखा:
name() { ... }से परिभाषित करें और नाम से कॉल करें- तर्कों के लिए
$1,$@,$#और स्थिति के लिएreturnका उपयोग करें - चर का दायरा
localसे सीमित करें और डेटाechoके माध्यम से लौटाएँ - उन्हें
~/.bashrcमें स्थायी करें औरdeclare -fसे जाँचें
एआई शिक्षक के साथ Bash सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 22
- पाठ
- 88
अक्सर पूछे जाने वाले प्रश्न
क्या “शेल फ़ंक्शन और पुनः उपयोग योग्य अंश” पाठ निःशुल्क है?
हाँ—“शेल फ़ंक्शन और पुनः उपयोग योग्य अंश” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“शेल फ़ंक्शन और पुनः उपयोग योग्य अंश” में मैं क्या सीखूँगा?
अपने शेल के लिए कमांडों को पुनः उपयोग योग्य, पैरामीटरयुक्त निर्माण-खंडों में व्यवस्थित करने हेतु Bash फ़ंक्शन परिभाषित करना और उनका उपयोग करना सीखें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“शेल फ़ंक्शन और पुनः उपयोग योग्य अंश” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- जॉब नियंत्रण (bg, fg, jobs)
- शेल विस्तार और ग्लॉबिंग
- उपनाम और कस्टम प्रॉम्प्ट
- शेल फ़ंक्शन और पुनः उपयोग योग्य अंश