Linux में, शेल स्क्रिप्ट कई अलग-अलग तरीकों से हमारी मदद करती हैं, जिसमें कुछ सिस्टम व्यवस्थापन कार्यों को निष्पादित करना या स्वचालित करना, सरल कमांड लाइन टूल बनाना और बहुत कुछ शामिल हैं।
इस गाइड में, हम नए लिनक्स उपयोगकर्ताओं को दिखाएंगे कि कस्टम शेल स्क्रिप्ट को मज़बूती से कहाँ संग्रहीत किया जाए, कस्टम शेल फ़ंक्शन और लाइब्रेरी कैसे लिखें, अन्य स्क्रिप्ट में लाइब्रेरी से फ़ंक्शंस का उपयोग कैसे करें।
शैल स्क्रिप्ट को कहां स्टोर करें
एक पूर्ण/पूर्ण पथ टाइप किए बिना आपकी स्क्रिप्ट चलाने के लिए, उन्हें $PATH में किसी एक निर्देशिका में संग्रहीत किया जाना चाहिए पर्यावरण चर।
अपने $PATH . की जांच करने के लिए , निम्न आदेश जारी करता है:
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
आम तौर पर, यदि निर्देशिका बिन उपयोगकर्ता की होम निर्देशिका में मौजूद है, यह स्वचालित रूप से उसके $PATH . में शामिल हो जाता है . आप अपनी शेल स्क्रिप्ट यहां स्टोर कर सकते हैं।
इसलिए, बिन . बनाएं निर्देशिका (जो पर्ल . को भी स्टोर कर सकती है) , अवेक या पायथन स्क्रिप्ट या कोई अन्य प्रोग्राम):
$ mkdir ~/bin
इसके बाद, lib . नामक निर्देशिका बनाएं (पुस्तकालयों के लिए संक्षिप्त) जहाँ आप अपने पुस्तकालय रखेंगे। आप इसमें अन्य भाषाओं जैसे C, Python आदि के लिए लाइब्रेरी भी रख सकते हैं। इसके अंतर्गत, sh . नामक एक अन्य निर्देशिका बनाएं; यह विशेष रूप से आपको शेल लाइब्रेरी स्टोर करेगा:
$ mkdir -p ~/lib/sh
अपना खुद का शेल फंक्शंस और लाइब्रेरी बनाएं
एक खोल फ़ंक्शन कमांड का एक समूह है जो एक स्क्रिप्ट में एक विशेष कार्य करता है। वे अन्य प्रोग्रामिंग भाषाओं में प्रक्रियाओं, सबरूटीन्स और कार्यों के समान काम करते हैं।
फंक्शन लिखने का सिंटैक्स है:
function_name() { list of commands }
उदाहरण के लिए, आप तारीख . दिखाने के लिए स्क्रिप्ट में फ़ंक्शन लिख सकते हैं इस प्रकार है:
showDATE() {date;}
हर बार जब आप तारीख प्रदर्शित करना चाहते हैं , बस इसके नाम का उपयोग करके ऊपर दिए गए फ़ंक्शन का आह्वान करें:
$ showDATE
एक खोल पुस्तकालय केवल एक शेल स्क्रिप्ट है, हालांकि, आप केवल अपने कार्यों को संग्रहीत करने के लिए एक पुस्तकालय लिख सकते हैं जिसे आप बाद में अन्य शेल स्क्रिप्ट से कॉल कर सकते हैं।
नीचे libMYFUNCS.sh called नामक लाइब्रेरी का एक उदाहरण दिया गया है मेरे ~/lib/sh . में कार्यों के अधिक उदाहरणों के साथ निर्देशिका:
#!/bin/bash #Function to clearly list directories in PATH showPATH() { oldifs="$IFS" #store old internal field separator IFS=: #specify a new internal field separator for DIR in $PATH ; do echo $DIR ; done IFS="$oldifs" #restore old internal field separator } #Function to show logged user showUSERS() { echo -e “Below are the user logged on the system:\n” w } #Print a user’s details printUSERDETS() { oldifs="$IFS" #store old internal field separator IFS=: #specify a new internal field separator read -p "Enter user name to be searched:" uname #read username echo "" #read and store from a here string values into variables using : as a field delimiter read -r username pass uid gid comments homedir shell <<< "$(cat /etc/passwd | grep "^$uname")" #print out captured values echo -e "Username is : $username\n" echo -e "User's ID : $uid\n" echo -e "User's GID : $gid\n" echo -e "User's Comments : $comments\n" echo -e "User's Home Dir : $homedir\n" echo -e "User's Shell : $shell\n" IFS="$oldifs" #store old internal field separator }
फ़ाइल को सहेजें और स्क्रिप्ट को निष्पादन योग्य बनाएं।
लाइब्रेरी से कार्यों को कैसे आमंत्रित करें
किसी फ़ंक्शन को lib . में उपयोग करने के लिए , आपको सबसे पहले lib . को शामिल करना होगा शेल स्क्रिप्ट में जहां फ़ंक्शन का उपयोग किया जाएगा, नीचे दिए गए फॉर्म में:
$ ./path/to/lib OR $ source /path/to/lib
तो आप printUSERDETS function फ़ंक्शन का उपयोग करेंगे काम से ~/lib/sh/libMYFUNCS.sh किसी अन्य स्क्रिप्ट में जैसा कि नीचे दिखाया गया है।
किसी विशेष उपयोगकर्ता के विवरण को प्रिंट करने के लिए आपको इस स्क्रिप्ट में दूसरा कोड लिखने की आवश्यकता नहीं है, बस किसी मौजूदा फ़ंक्शन को कॉल करें।
test.sh . नाम से एक नई फ़ाइल खोलें :
#!/bin/bash #include lib . ~/lib/sh/libMYFUNCS.sh #use function from lib printUSERDETS #exit script exit 0
इसे सेव करें, फिर स्क्रिप्ट को एक्जीक्यूटेबल बनाएं और इसे रन करें:
$ chmod 755 test.sh $ ./test.sh
इस लेख में, हमने आपको दिखाया है कि शेल स्क्रिप्ट को मज़बूती से कहाँ संग्रहीत करना है, अपने स्वयं के शेल फ़ंक्शन और लाइब्रेरी कैसे लिखना है, सामान्य शेल स्क्रिप्ट में लाइब्रेरी से फ़ंक्शन को कैसे लागू करना है।
इसके बाद, हम विम . को कॉन्फ़िगर करने का एक सीधा तरीका बताएंगे एक आईडीई . के रूप में बैश स्क्रिप्टिंग के लिए। तब तक, हमेशा TecMint से जुड़े रहें और नीचे दिए गए फीडबैक फॉर्म के माध्यम से इस गाइड के बारे में अपने विचार साझा करें।