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

बैश स्क्रिप्टिंग मास्टर करें: विश्वसनीय लिनक्स ऑटोमेशन के लिए 10 आवश्यक टिप्स

शेल स्क्रिप्टिंग लिनक्स में सीखने/करने का सबसे आसान प्रोग्रामिंग रूप है। इससे भी अधिक, यह सिस्टम एडमिनिस्ट्रेशन के लिए एक आवश्यक कौशल है जो कार्यों को स्वचालित करने, नए सरल यूटिलिटीज/टूल्स विकसित करने आदि के लिए है।

इस लेख में, हम प्रभावी और विश्वसनीय बैश स्क्रिप्ट लिखने के लिए 10 उपयोगी और व्यावहारिक टिप्स साझा करेंगे और उनमें शामिल हैं:

1. स्क्रिप्ट्स में हमेशा कमेंट्स का उपयोग करें

यह एक अनुशंसित अभ्यास है जो न केवल शेल स्क्रिप्टिंग बल्कि अन्य सभी प्रकार के प्रोग्रामिंग पर लागू होता है। स्क्रिप्ट में कमेंट्स लिखने से आपको या किसी और को आपकी स्क्रिप्ट के विभिन्न हिस्सों को समझने में मदद मिलती है।

शुरुआत के लिए, कमेंट्स # चिह्न का उपयोग करके परिभाषित किए जाते हैं।

#TecMint सभी प्रकार के लिनक्स लेखों के लिए सबसे अच्छी साइट है 

2. फेल होने पर स्क्रिप्ट को एक्जिट कराएं

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

#कमांड विफल होने पर स्क्रिप्ट से बाहर निकलें set -o errexit OR set -e 

3. बैश द्वारा अघोषित वेरिएबल उपयोग करने पर स्क्रिप्ट को एक्जिट कराएं

बैश एक अघोषित स्क्रिप्ट का उपयोग करने का प्रयास भी कर सकता है जो तार्किक त्रुटि का कारण बन सकती है। इसलिए बैश को निर्देश देने के लिए निम्न लाइन का उपयोग करें कि जब वह अघोषित वेरिएबल का उपयोग करने का प्रयास करे तो स्क्रिप्ट से बाहर निकल जाए:

#अनुपयोगी वेरिएबल उपयोग होने पर स्क्रिप्ट से बाहर निकलें set -o nounset OR set -u 

4. वेरिएबल्स को संदर्भित करने के लिए डबल कोट्स का उपयोग करें

वेरिएबल्स को संदर्भित करते समय (वेरिएबल के मान का उपयोग करते समय) डबल कोट्स का उपयोग करने से वर्ड स्प्लिटिंग (व्हाइटस्पेस के संबंध में) और अनावश्यक ग्लोबिंग (वाइल्डकार्ड्स को पहचानना और विस्तारित करना) को रोकने में मदद मिलती है।

नीचे दिए गए उदाहरण को देखें:

#!/bin/bash #कमांड विफल होने पर स्क्रिप्ट से बाहर निकलें set -o errexit #अनुपयोगी वेरिएबल उपयोग होने पर स्क्रिप्ट से बाहर निकलें set -o nounset echo "Names without double quotes" echo names="Tecmint FOSSMint Linusay" for name in $names; do echo "$name" done echo echo "Names with double quotes" echo for name in "$names"; do echo "$name" done exit 0 

फ़ाइल सेव करें और बाहर निकलें, फिर इसे निम्नानुसार चलाएं:

$ ./names.sh 
बैश स्क्रिप्टिंग मास्टर करें: विश्वसनीय लिनक्स ऑटोमेशन के लिए 10 आवश्यक टिप्स

5. स्क्रिप्ट्स में फंक्शन्स का उपयोग करें

बहुत छोटी स्क्रिप्ट्स (कोड की कुछ लाइनों के साथ) को छोड़कर, हमेशा अपने कोड को मॉड्यूलराइज़ करने और स्क्रिप्ट्स को अधिक पठनीय और पुन: प्रयोज्य बनाने के लिए फंक्शन्स का उपयोग करना याद रखें।

फंक्शन लिखने का सिंटैक्स इस प्रकार है:

function check_root(){ command1; command2; } OR check_root(){ command1; command2; } 

सिंगल लाइन कोड के लिए, प्रत्येक कमांड के बाद टर्मिनेशन कैरेक्टर्स का उपयोग करें जैसे:

check_root(){ command1; command2; } 

6. स्ट्रिंग तुलना के लिए == के बजाय = का उपयोग करें

ध्यान दें कि == = का पर्याय है, इसलिए स्ट्रिंग तुलना के लिए केवल एकल = का उपयोग करें, उदाहरण के लिए:

value1=”tecmint.com” value2=”fossmint.com” if [ "$value1" = "$value2" ] 

7. लिगेसी `command` के बजाय $(command) का उपयोग करें सब्स्टीट्यूशन के लिए

कमांड सब्स्टीट्यूशन एक कमांड को उसके आउटपुट से प्रतिस्थापित करता है। कमांड सब्स्टीट्यूशन के लिए बैककोट्स `command` के बजाय $(command) का उपयोग करें।

यह शेलचेक टूल द्वारा भी अनुशंसित है (शेल स्क्रिप्ट्स के लिए चेतावनियां और सुझाव दिखाता है)। उदाहरण के लिए:

user=`echo “$UID”` user=$(echo “$UID”) 

8. स्टेटिक वेरिएबल्स घोषित करने के लिए Read-only का उपयोग करें

एक स्टेटिक वेरिएबल नहीं बदलता; स्क्रिप्ट में परिभाषित होने के बाद इसके मान को बदला नहीं जा सकता:

readonly passwd_file=”/etc/passwd” readonly group_file=”/etc/group” 

9. ENVIRONMENT वेरिएबल्स के लिए अपरकेस नाम और कस्टम वेरिएबल्स के लिए लोअरकेस का उपयोग करें

सभी बैश एनवायरनमेंट वेरिएबल्स अपरकेस अक्षरों के साथ नामित हैं, इसलिए अपने कस्टम वेरिएबल्स का नाम लोअरकेस अक्षरों से रखें ताकि वेरिएबल नाम संघर्ष से बचा जा सके:

#कस्टम वेरिएबल्स को लोअरकेस का उपयोग करके परिभाषित करें और एनवी वेरिएबल्स के लिए अपरकेस का उपयोग करें nikto_file=”$HOME/Downloads/nikto-master/program/nikto.pl” perl “$nikto_file” -h “$1” 

10. लंबी स्क्रिप्ट्स के लिए हमेशा डिबगिंग करें

यदि आप हजारों लाइनों के कोड के साथ बैश स्क्रिप्ट लिख रहे हैं, तो त्रुटियों को ढूंढना एक बुरा सपना बन सकता है। स्क्रिप्ट निष्पादित करने से पहले चीजों को आसानी से ठीक करने के लिए, कुछ डिबगिंग करें। निम्न गाइड्स को पढ़कर इस टिप में महारत हासिल करें:

  1. लिनक्स में शेल स्क्रिप्ट डिबगिंग मोड कैसे सक्षम करें
  2. शेल स्क्रिप्ट्स में सिंटैक्स चेकिंग डिबगिंग मोड कैसे निष्पादित करें
  3. शेल ट्रेसिंग के साथ शेल स्क्रिप्ट में कमांड्स के निष्पादन को कैसे ट्रेस करें

बस इतना ही! क्या आपके पास साझा करने के लिए कोई अन्य सर्वोत्तम बैश स्क्रिप्टिंग प्रथाएं हैं? यदि हाँ, तो नीचे दिए गए कमेंट फॉर्म का उपयोग करके ऐसा करें।


  1. लिनक्स में सरल शेल स्क्रिप्ट्स में मास्टरी: चरण-दर-चरण गाइड लिनक्स में सरल शेल स्क्रिप्ट्स में मास्टरी: चरण-दर-चरण गाइड

    शेल स्क्रिप्ट बनाना सबसे आवश्यक कौशल में से एक है जो लिनक्स उपयोगकर्ताओं की उंगलियों पर होना चाहिए। शेल स्क्रिप्ट दोहराए जाने वाले कार्यों को स्वचालित करने में एक बड़ी भूमिका निभाती है जो अन्यथा लाइन दर लाइन निष्पादित करना थकाऊ होगा। इस ट्यूटोरियल में, हम कुछ बुनियादी शेल स्क्रिप्टिंग ऑपरेशंस को हा

  1. बैश मास्टर करें: आवश्यक लिनक्स कमांड लाइन शॉर्टकट्स बैश मास्टर करें: आवश्यक लिनक्स कमांड लाइन शॉर्टकट्स

    इस लेख में, हम कई बैश कमांड-लाइन शॉर्टकट्स साझा करेंगे जो किसी भी लिनक्स उपयोगकर्ता के लिए उपयोगी हैं। ये शॉर्टकट्स आपको कुछ गतिविधियों को आसानी से और तेज़ी से करने की अनुमति देते हैं जैसे कि पहले से निष्पादित कमांड्स तक पहुंचना और चलाना, एक एडिटर खोलना, कमांड लाइन पर टेक्स्ट संपादित/हटाना/बदलना, कर

  1. iPhone X मास्टर करने के लिए 9 आवश्यक टिप्स iPhone X मास्टर करने के लिए 9 आवश्यक टिप्स

    iPhone X अन्य iPhones से पूरी तरह अलग है, यह स्मार्टफोन में एक नए युग की शुरुआत का प्रतीक है, जहां डिस्प्ले, फेशियल रिकग्निशन, Animoji और जेस्चर का उपयोग सब कुछ नियंत्रित करने के लिए किया जाएगा। लेकिन, होम बटन के बिना यह अव्यावहारिक और कठिन लगता है। खैर, बदलाव के अनुकूल होने में हमेशा समय लगता है, ल