Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

बाशो में फंक्शन कैसे लिखें

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

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 . कर सकते हैं इसे अपनी स्क्रिप्ट में जैसा कि आप include . करेंगे C या C++ में एक पुस्तकालय या import पायथन में एक मॉड्यूल। बैश फ़ंक्शन बनाने के लिए, कीवर्ड का उपयोग करें function :

function foo {
# code here
}

एक फ़ंक्शन तर्कों के साथ कैसे काम करता है, इसका उदाहरण यहां दिया गया है:

#!/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. शुरुआती के लिए शैल स्क्रिप्टिंग - लिनक्स में बैश स्क्रिप्ट कैसे लिखें

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

  1. कस्टम शैल फ़ंक्शंस और पुस्तकालयों को कैसे लिखें और उपयोग करें

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

  1. बैश शैल फंक्शन ट्यूटोरियल 6 व्यावहारिक उदाहरणों के साथ

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