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

बैश फंक्शन में महारत हासिल करें: एक प्रो की तरह पुन: प्रयोज्य स्क्रिप्ट लिखें

जब आप प्रोग्रामिंग कर रहे होते हैं, तो आप सचमुच एक प्रक्रिया, या एक रूटीन को परिभाषित कर रहे होते हैं, जिसे आप कंप्यूटर को निष्पादित करना चाहते हैं। एक सरल सादृश्य कंप्यूटर प्रोग्रामिंग की तुलना ब्रेड बेक करने से करता है: आप सामग्री को एक बार सूचीबद्ध करते हैं कार्य वातावरण सेट करने के लिए, फिर आप उन चरणों को सूचीबद्ध करते हैं जिन्हें आपको ब्रेड का एक लोफ प्राप्त करने के लिए लेना होगा। प्रोग्रामिंग और बेकिंग दोनों में, कुछ चरणों को अलग-अलग अंतराल पर दोहराया जाना चाहिए। ब्रेड बेक करने में, उदाहरण के लिए, यह खट्टी डोउ कल्चर को खिलाने की प्रक्रिया हो सकती है:

STIR=100
SNOOZE=86400

function feed_culture {
remove_from(pantry)
add(flour, water)
stir($STIR)
sleep($SNOOZE)
}

और बाद में, आटा गूंथना और प्रूफ करना:

KNEAD=600
SNOOZE=7200

function process_dough {
remove_from(proofing_drawer)
knead($KNEAD)
return_to_drawer($SNOOZE)
}

प्रोग्रामिंग में, इन सबरूटीन को फंक्शन के रूप में व्यक्त किया जा सकता है। फंक्शन प्रोग्रामर्स के लिए महत्वपूर्ण हैं क्योंकि वे कोड में अतिरेक को कम करने में मदद करते हैं, जो बदले में आवश्यक रखरखाव की मात्रा को कम करता है। उदाहरण के लिए, ब्रेड को प्रोग्रामेटिकली बेक करने के काल्पनिक परिदृश्य में, यदि आपको आटे के प्रूफ होने के समय की मात्रा बदलने की आवश्यकता है, जब तक आपने पहले एक फंक्शन का उपयोग किया है, आपको केवल सेकंड के मान को एक बार बदलना होगा, या तो एक वेरिएबल का उपयोग करके (SNOOZE नमूना कोड में कहा जाता है) या सीधे सबरूटीन में जो आटे को प्रोसेस करता है। यह आपको बहुत समय बचा सकता है, क्योंकि आपको अपने कोडबेस में राइजिंग डोउ के हर संभावित उल्लेख का शिकार नहीं करना पड़ता, इस बात की चिंता किए बिना कि कोई छूट गया है। कई बग एक छूटे हुए मान के कारण हुए हैं जो बदला नहीं गया या खराब निष्पादित sed कमांड की उम्मीद में हर अंतिम मैच को पकड़ने के लिए बिना मैन्युअल रूप से उनका शिकार किए।

बैश में, एक फंक्शन को परिभाषित करना उतना ही आसान है जितना कि इसे उस स्क्रिप्ट फाइल में सेट करना जिसे आप लिख रहे हैं या एक अलग फाइल में। यदि आप फंक्शन को एक समर्पित फाइल में सहेजते हैं, तो आप इसे अपनी स्क्रिप्ट में source कर सकते हैं जैसे आप C या C++ में include लाइब्रेरी या पायथन में import मॉड्यूल करेंगे। एक बैश फंक्शन बनाने के लिए, कीवर्ड function का उपयोग करें:

function foo {
# यहाँ कोड
}

यहाँ एक सरल (और कुछ हद तक बनावटी, क्योंकि इसे सरल बनाया जा सकता था) उदाहरण है कि कैसे एक फंक्शन तर्कों के साथ काम करता है:

#!/usr/bin/env bash
ARG=$1

function mimic {
if [[ -z $ARG ]]; then
ARG='world'
fi
echo "hello $ARG"
}

mimic $ARG

परिणाम यहाँ हैं:

$ ./mimic
hello world
$ ./mimic everybody
hello everybody

स्क्रिप्ट की अंतिम पंक्ति पर ध्यान दें, जो फंक्शन को निष्पादित करती है। यह शुरुआती स्क्रिप्टर्स और प्रोग्रामर्स के लिए भ्रम का एक सामान्य बिंदु है: फंक्शन स्वचालित रूप से निष्पादित नहीं होते हैं। वे संभावित रूटीन के रूप में मौजूद होते हैं जब तक उन्हें बुलाया नहीं जाता।

फंक्शन को कॉल करने वाली लाइन के बिना, फंक्शन केवल परिभाषित होगा और कभी नहीं चलेगा।

यदि आप बैश में नए हैं, तो नमूना स्क्रिप्ट को अंतिम पंक्ति के साथ एक बार निष्पादित करने का प्रयास करें और फिर अंतिम पंक्ति को कमेंट आउट करके फिर से।

फंक्शन का उपयोग करना

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

  1. Bash शेल स्क्रिप्टिंग में महारत हासिल करें: Linux स्क्रिप्ट लिखने और स्वचालित करने के लिए एक शुरुआती गाइड Bash शेल स्क्रिप्टिंग में महारत हासिल करें: Linux स्क्रिप्ट लिखने और स्वचालित करने के लिए एक शुरुआती गाइड

    शेल स्क्रिप्टिंग Linux में प्रक्रिया स्वचालन का एक महत्वपूर्ण हिस्सा है। स्क्रिप्टिंग आपको कमांड के एक क्रम को एक फ़ाइल में लिखने और फिर उन्हें निष्पादित करने में मदद करता है। यह आपका समय बचाता है क्योंकि आपको कुछ कमांड को बार-बार लिखने की आवश्यकता नहीं होती है। आप दैनिक कार्यों को कुशलतापूर्वक कर स

  1. कस्टम शेल फंक्शन्स और लाइब्रेरीज़ मास्टर करें: लिनक्स उपयोगकर्ताओं के लिए व्यावहारिक मार्गदर्शिका कस्टम शेल फंक्शन्स और लाइब्रेरीज़ मास्टर करें: लिनक्स उपयोगकर्ताओं के लिए व्यावहारिक मार्गदर्शिका

    लिनक्स में, शेल स्क्रिप्ट्स कई अलग-अलग तरीकों से हमारी मदद करती हैं जिनमें कुछ सिस्टम एडमिनिस्ट्रेशन कार्यों को करने या यहां तक कि स्वचालित करना, सरल कमांड लाइन टूल्स बनाना और बहुत कुछ शामिल है। इस गाइड में, हम नए लिनक्स उपयोगकर्ताओं को दिखाएंगे कि कस्टम शेल स्क्रिप्ट्स को विश्वसनीय रूप से कहां स्टो

  1. Bash शेल फ़ंक्शन्स में मास्टर करें: 6 व्यावहारिक उदाहरण और टिप्स Bash शेल फ़ंक्शन्स में मास्टर करें: 6 व्यावहारिक उदाहरण और टिप्स

    Bash शेल फ़ंक्शन्स कई UNIX / Linux कमांड्स को बाद में निष्पादन के लिए एक ही नाम का उपयोग करके समूहबद्ध करने का एक तरीका है। Bash शेल फ़ंक्शन को नियमित Unix कमांड की तरह निष्पादित किया जा सकता है। शेल फ़ंक्शन्स को किसी नई प्रक्रिया को बनाए बिना वर्तमान शेल संदर्भ में निष्पादित किया जाता है। Bash alia