'शैल स्क्रिप्टिंग . के पिछले निम्नलिखित लेख ’श्रृंखला को बहुत सराहा गया और इसलिए मैं यह लेख सीखने की कभी न खत्म होने वाली प्रक्रिया को आगे बढ़ाने के लिए लिख रहा हूं।
- मूल Linux शेल स्क्रिप्टिंग भाषा युक्तियों को समझें - भाग I
- 5 शैल स्क्रिप्ट्स शेल प्रोग्रामिंग सीखने के लिए Linux के नए शौक़ीन लोगों के लिए - भाग II
बैश कीवर्ड
एक कीवर्ड एक शब्द या प्रतीक है जिसका कंप्यूटर भाषा के लिए एक विशेष अर्थ है। निम्नलिखित प्रतीकों और शब्दों के बैश . के विशेष अर्थ हैं जब वे गैर-उद्धृत और कमांड के पहले शब्द होते हैं।
! esac select } case fi then [[ do for until ]] done function while elif if time else in {
अधिकांश कंप्यूटर भाषाओं के विपरीत, बैश कीवर्ड को चर नामों के रूप में उपयोग करने की अनुमति देता है भले ही इससे स्क्रिप्ट को पढ़ना मुश्किल हो सकता है। स्क्रिप्ट को समझने योग्य बनाए रखने के लिए, चर नामों के लिए कुंजी-शब्दों का उपयोग नहीं किया जाना चाहिए।
शेल में एक कमांड को $ . के रूप में लागू किया जाता है (आज्ञा)। आपको कमांड का पूरा पथ शामिल करना पड़ सकता है। उदा., $(/bin/date) , सही निष्पादन के लिए।
आप 'कहां है . का उपयोग करके विशिष्ट कार्यक्रम का मार्ग जान सकते हैं ' आज्ञा। उदा., तारीख कहां है
[[email protected] /]# whereis date date: /bin/date /usr/share/man/man1/date.1.gz
अभी के लिए इतना ही काफी है। अब हम इन थ्योरी के बारे में ज्यादा बात नहीं करेंगे। लिपियों पर आ रहा है।
वर्तमान कार्य निर्देशिका को स्थानांतरित करें
निष्पादित करते समय स्क्रिप्ट के अंत में केवल संख्यात्मक मान प्रदान करके वर्तमान कार्यशील निर्देशिका से किसी भी स्तर तक ले जाएं।
#! /bin/bash LEVEL=$1 for ((i = 1; i <= LEVEL; i++)) do CDIR=../$CDIR done cd $CDIR echo "You are in: "$PWD exec /bin/bash
उपरोक्त कोड "up.sh . के रूप में सहेजें ", आपके डेस्कटॉप पर। इसे निष्पादन योग्य बनाएं (chmod 755 up.sh ) भागो:
./up.sh 2 (वर्तमान कार्यशील निर्देशिका को दो स्तर ऊपर ले जाया जाएगा)।
./up.sh 4 (वर्तमान कार्यशील निर्देशिका को चार स्तर ऊपर ले जाया जाएगा)।
उपयोग और अनुप्रयोग का क्षेत्र
बड़ी स्क्रिप्ट में जिसमें फ़ोल्डर के अंदर फ़ोल्डर होता है... जिसमें लाइब्रेरी . होता है , बाइनरी , आइकन , निष्पादन योग्य , आदि विभिन्न स्थानों पर, आप एक डेवलपर के रूप में इस स्क्रिप्ट को एक बहुत ही स्वचालित तरीके से वांछित स्थान पर ले जाने के लिए लागू कर सकते हैं।
नोट :उपरोक्त स्क्रिप्ट में एक लूप है और यह तब तक निष्पादित होता रहेगा जब तक कि लूप के लिए मान सही नहीं हो जाते।
नमूना आउटपुट
[[email protected] /]# chmod 755 up [[email protected] /]# ./up.sh 2 You are in: / [[email protected] /]# ./up.sh 4 You are in: / [[email protected] /]#
up.sh डाउनलोड करें
एक यादृच्छिक फ़ाइल या फ़ोल्डर बनाएं
दोहराव की संभावना के बिना एक यादृच्छिक फ़ाइल (फ़ोल्डर) बनाएं।
#! /bin/bash echo "Hello $USER"; echo "$(uptime)" >> "$(date)".txt echo "Your File is being saved to $(pwd)"
यह एक साधारण स्क्रिप्ट है लेकिन यह काम करना इतना आसान नहीं है।
- ‘गूंज ' :उद्धरणों के भीतर लिखी गई हर चीज को प्रिंट करता है।
- ‘$ ' :शेल वेरिएबल है।
- ‘>> ' :आउटपुट को तारीख . के आउटपुट पर रीडायरेक्ट किया जाता है कमांड के बाद txt विस्तार।
हम तारीख . का आउटपुट जानते हैं आदेश तारीख है , और समय घंटे . में , मिनट, दूसरा वर्ष . के साथ . इसलिए हम फ़ाइल नाम दोहराव की संभावना के बिना एक संगठित फ़ाइल नाम पर आउटपुट प्राप्त कर सकते हैं। यह बहुत उपयोगी हो सकता है जब उपयोगकर्ता को समय टिकट . के साथ बनाई गई फ़ाइल की आवश्यकता हो भविष्य के संदर्भ के लिए।
नमूना आउटपुट
[[email protected] /]# ./randomfile.sh Hello server Your File is being saved to /home/server/Desktop
आप आज की तारीख और वर्तमान समय के साथ डेस्कटॉप पर बनाई गई फ़ाइल को देख सकते हैं।
[[email protected] /]# nano Sat\ Jul\ 20\ 13\:51\:52\ IST\ 2013.txt 13:51:52 up 3:54, 1 user, load average: 0.09, 0.12, 0.08
उपरोक्त स्क्रिप्ट का अधिक विस्तृत कार्यान्वयन नीचे दिया गया है, जो उपरोक्त सिद्धांत पर काम करता है और एक लिनक्स की नेटवर्क जानकारी एकत्र करने में बहुत उपयोगी है। सर्वर।
randomfile.sh डाउनलोड करें
नेटवर्क जानकारी एकत्रित करने के लिए स्क्रिप्ट
एक लिनक्स . पर नेटवर्क जानकारी एकत्रित करता है सर्वर। स्क्रिप्ट बहुत बड़ी है और स्क्रिप्ट का पूरा कोड और आउटपुट यहां पोस्ट करना संभव नहीं है। इसलिए, बेहतर होगा कि आप नीचे दिए गए डाउनलोड लिंक का उपयोग करके स्क्रिप्ट को डाउनलोड करें और स्वयं उसका परीक्षण करें।
नोट :आपको lsb-core install स्थापित करने की आवश्यकता हो सकती है पैकेज और अन्य आवश्यक पैकेज और निर्भरता। उपयुक्त या यम आवश्यक पैकेज। जाहिर है आपको रूट . होना चाहिए स्क्रिप्ट चलाने के लिए क्योंकि यहां उपयोग किए जाने वाले अधिकांश कमांड रूट . के रूप में चलाने के लिए कॉन्फ़िगर किए गए हैं ।
नमूना आउटपुट
[[email protected] /]# ./collectnetworkinfo.sh The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to [email protected]_provider.com. ktop
आप उपरोक्त ईमेल पते को अपनी स्क्रिप्ट में बदल सकते हैं ताकि यह आपको मेल किया जा सके। स्वचालित रूप से जेनरेट की गई फ़ाइल देखी जा सकती है।
collectnetworkinfo.sh डाउनलोड करें
अपरकेस को लोअरकेस में बदलने के लिए स्क्रिप्ट
एक स्क्रिप्ट जो अपरकेस . को रूपांतरित करती है करने के लिए लोअरकेस और आउटपुट को एक टेक्स्ट फ़ाइल "small.txt . पर रीडायरेक्ट करता है ” जिसे आवश्यकतानुसार संशोधित किया जा सकता है।
#!/bin/bash echo -n "Enter File Name : " read fileName if [ ! -f $fileName ]; then echo "Filename $fileName does not exists" exit 1 fi tr '[A-Z]' '[a-z]' < $fileName >> small.txt
यह उपरोक्त स्क्रिप्ट अपरकेस . से एक क्लिक के साथ किसी भी लम्बाई की फ़ाइल के केस को रूपांतरित कर सकती है करने के लिए लोअरकेस और इसके विपरीत यदि आवश्यक हो, थोड़े संशोधन के साथ।
नमूना आउटपुट
[[email protected] /]# ./convertlowercase.sh Enter File Name : a.txt Initial File: A B C D E F G H I J K ...
नई फ़ाइल (small.txt ) आउटपुट:
a b c d e f g h i j k ...
convertlowercase.sh डाउनलोड करें
सरल कैलकुलेटर प्रोग्राम
#! /bin/bash clear sum=0 i="y" echo " Enter one no." read n1 echo "Enter second no." read n2 while [ $i = "y" ] do echo "1.Addition" echo "2.Subtraction" echo "3.Multiplication" echo "4.Division" echo "Enter your choice" read ch case $ch in 1)sum=`expr $n1 + $n2` echo "Sum ="$sum;; 2)sum=`expr $n1 - $n2` echo "Sub = "$sum;; 3)sum=`expr $n1 \* $n2` echo "Mul = "$sum;; 4)sum=`expr $n1 / $n2` echo "Div = "$sum;; *)echo "Invalid choice";; esac echo "Do u want to continue (y/n)) ?" read i if [ $i != "y" ] then exit fi done
नमूना आउटपुट
[[email protected] /]# ./simplecalc.sh Enter one no. 12 Enter second no. 14 1.Addition 2.Subtraction 3.Multiplication 4.Division Enter your choice 1 Sum =26 Do u want to continue (y/n)) ? y 1.Addition 2.Subtraction 3.Multiplication 4.Division Enter your choice 3 mul = 14812 Do u want to continue (y/n)) ? n
simplecalc.sh डाउनलोड करें
तो क्या आपने देखा कि एक शक्तिशाली प्रोग्राम बनाना कितना आसान था क्योंकि गणना इतनी आसान थी। यह अंत नहीं है। हम इस श्रृंखला के कम से कम एक और लेख का संकलन करेंगे, जिसमें प्रशासन के दृष्टिकोण से व्यापक परिप्रेक्ष्य शामिल होगा।
अभी के लिए इतना ही। पाठक और सर्वश्रेष्ठ आलोचक होने के नाते हमें यह बताना न भूलें कि आपने इस लेख में कितना और क्या आनंद लिया और भविष्य के लेख में आप क्या देखना चाहते हैं। टिप्पणी में किसी भी प्रश्न का अत्यधिक स्वागत है। तब तक स्वस्थ stay रहें , सुरक्षित और ट्यून किया गया . पसंद करें और साझा करें हमें और फैलाने में मदद करें।