शेल स्क्रिप्टिंग प्रोग्रामिंग का सबसे आसान रूप है जिसे आप लिनक्स में सीख सकते हैं/कर सकते हैं। इसके अलावा, यह सिस्टम प्रशासन के लिए कार्यों को स्वचालित करने, नई सरल उपयोगिताओं/उपकरणों को विकसित करने के लिए एक आवश्यक कौशल है, लेकिन कुछ का उल्लेख करने के लिए।
इस लेख में, हम प्रभावी और विश्वसनीय बैश स्क्रिप्ट लिखने के लिए 10 उपयोगी और व्यावहारिक सुझाव साझा करेंगे और उनमें शामिल हैं:
<एच3>1. हमेशा लिपियों में टिप्पणियों का प्रयोग करेंयह एक अनुशंसित अभ्यास है जो न केवल शेल स्क्रिप्टिंग पर बल्कि अन्य सभी प्रकार की प्रोग्रामिंग पर लागू होता है। किसी स्क्रिप्ट में टिप्पणियाँ लिखने से आपको या आपकी स्क्रिप्ट को पढ़ने वाले किसी अन्य व्यक्ति को यह समझने में मदद मिलती है कि स्क्रिप्ट के विभिन्न भाग क्या करते हैं।
शुरुआत के लिए, टिप्पणियों को #
. का उपयोग करके परिभाषित किया गया है साइन करें।
#TecMint is the best site for all kind of Linux articles<एच3>2. विफल होने पर स्क्रिप्ट से बाहर निकलें
कभी-कभी बैश एक निश्चित कमांड के विफल होने पर भी स्क्रिप्ट को निष्पादित करना जारी रख सकता है, इस प्रकार बाकी स्क्रिप्ट को प्रभावित करता है (अंततः तार्किक त्रुटियों में परिणाम हो सकता है)। कमांड विफल होने पर स्क्रिप्ट से बाहर निकलने के लिए नीचे दी गई लाइन का उपयोग करें:
#let script exit if a command fails set -o errexit OR set -e<एच3>3. जब बैश अघोषित चर का उपयोग करता है तो स्क्रिप्ट से बाहर निकलें
बैश एक अघोषित स्क्रिप्ट का उपयोग करने का भी प्रयास कर सकता है जो तार्किक त्रुटि का कारण बन सकता है। इसलिए जब किसी अघोषित चर का उपयोग करने का प्रयास किया जाता है तो स्क्रिप्ट से बाहर निकलने के लिए बैश को निर्देश देने के लिए निम्न पंक्ति का उपयोग करें:
#let script exit if an unsed variable is used set -o nounset OR set -u<एच3>4. संदर्भ चर के लिए दोहरे उद्धरण चिह्नों का उपयोग करें
संदर्भित करते समय दोहरे उद्धरण चिह्नों का उपयोग करना (एक चर के मान का उपयोग करना) शब्द विभाजन (व्हाट्सएप के संबंध में) और अनावश्यक ग्लोबिंग (वाइल्डकार्ड को पहचानना और विस्तारित करना) को रोकने में मदद करता है।
नीचे दिया गया उदाहरण देखें:
#!/bin/bash #let script exit if a command fails set -o errexit #let script exit if an unsed variable is used 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
5. स्क्रिप्ट में फ़ंक्शन का उपयोग करें
बहुत छोटी स्क्रिप्ट (कोड की कुछ पंक्तियों के साथ) को छोड़कर, हमेशा याद रखें कि अपने कोड को मॉड्यूलर करने के लिए फ़ंक्शन का उपयोग करें और स्क्रिप्ट को अधिक पठनीय और पुन:प्रयोज्य बनाएं।
कार्यों को लिखने के लिए वाक्य रचना इस प्रकार है:
function check_root(){ command1; command2; } OR check_root(){ command1; command2; }
सिंगल लाइन कोड के लिए, प्रत्येक कमांड के बाद टर्मिनेशन कैरेक्टर का उपयोग इस तरह करें:
check_root(){ command1; command2; }<एच3>6. स्ट्रिंग तुलना के लिए ==के बजाय =का उपयोग करें
ध्यान दें कि ==
=
. का समानार्थी है , इसलिए केवल एक =
. का उपयोग करें उदाहरण के लिए, स्ट्रिंग तुलना के लिए:
value1=”tecmint.com” value2=”fossmint.com” if [ "$value1" = "$value2" ]<एच3>7. प्रतिस्थापन के लिए लीगेसी 'कमांड' के बजाय $(कमांड) का उपयोग करें
कमांड प्रतिस्थापन एक कमांड को उसके आउटपुट से बदल देता है। $(command)
. का उपयोग करें बैककोट्स के बजाय `command`
कमांड प्रतिस्थापन के लिए।
शेलचेक टूल द्वारा भी इसकी अनुशंसा की जाती है (शेल स्क्रिप्ट के लिए चेतावनियां और सुझाव दिखाता है)। उदाहरण के लिए:
user=`echo “$UID”` user=$(echo “$UID”)
8. स्थैतिक चर घोषित करने के लिए केवल पढ़ने के लिए उपयोग करें
एक स्थिर चर नहीं बदलता है; एक बार स्क्रिप्ट में परिभाषित होने के बाद इसका मान बदला नहीं जा सकता:
readonly passwd_file=”/etc/passwd” readonly group_file=”/etc/group”
9. पर्यावरण चर के लिए अपरकेस नाम और कस्टम चर के लिए लोअरकेस का उपयोग करें
सभी बैश पर्यावरण चरों को अपरकेस अक्षरों के साथ नामित किया गया है, इसलिए परिवर्तनीय नाम संघर्षों से बचने के लिए अपने कस्टम चरों को नाम देने के लिए लोअरकेस अक्षरों का उपयोग करें:
#define custom variables using lowercase and use uppercase for env variables nikto_file=”$HOME/Downloads/nikto-master/program/nikto.pl” perl “$nikto_file” -h “$1”<एच3>10. लंबी स्क्रिप्ट के लिए हमेशा डिबगिंग करें
यदि आप कोड की हजारों पंक्तियों के साथ बैश स्क्रिप्ट लिख रहे हैं, तो त्रुटियां खोजना एक बुरा सपना बन सकता है। स्क्रिप्ट निष्पादित करने से पहले चीजों को आसानी से ठीक करने के लिए, कुछ डिबगिंग करें। नीचे दिए गए गाइड को पढ़कर इस टिप में महारत हासिल करें:
- लिनक्स में शेल स्क्रिप्ट डिबगिंग मोड कैसे सक्षम करें
- शैल स्क्रिप्ट में सिंटेक्स चेकिंग डिबगिंग मोड कैसे करें
- शेल ट्रेसिंग के साथ शेल स्क्रिप्ट में कमांड के निष्पादन को कैसे ट्रेस करें
बस इतना ही! क्या आपके पास साझा करने के लिए कोई अन्य सर्वोत्तम बैश स्क्रिप्टिंग प्रथाएं हैं? अगर हां, तो ऐसा करने के लिए नीचे दिए गए कमेंट फॉर्म का इस्तेमाल करें।