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

लिनक्स बैश स्क्रिप्टिंग की दुनिया के माध्यम से सेलिंग - भाग III

'शैल स्क्रिप्टिंग . के पिछले निम्नलिखित लेख ’श्रृंखला को बहुत सराहा गया और इसलिए मैं यह लेख सीखने की कभी न खत्म होने वाली प्रक्रिया को आगे बढ़ाने के लिए लिख रहा हूं।

लिनक्स बैश स्क्रिप्टिंग की दुनिया के माध्यम से सेलिंग - भाग III
  1. मूल Linux शेल स्क्रिप्टिंग भाषा युक्तियों को समझें - भाग I
  2. 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)"

यह एक साधारण स्क्रिप्ट है लेकिन यह काम करना इतना आसान नहीं है।

  1. गूंज ' :उद्धरणों के भीतर लिखी गई हर चीज को प्रिंट करता है।
  2. $ ' :शेल वेरिएबल है।
  3. >> ' :आउटपुट को तारीख . के आउटपुट पर रीडायरेक्ट किया जाता है कमांड के बाद 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 रहें , सुरक्षित और ट्यून किया गया . पसंद करें और साझा करें हमें और फैलाने में मदद करें।


  1. नेस्टेड चर प्रतिस्थापन और Linux में पूर्वनिर्धारित BASH चर - भाग 11

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

  1. शेल स्क्रिप्टिंग में 'लिनक्स वेरिएबल्स' को समझना और लिखना - भाग 10

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

  1. शेल स्क्रिप्टिंग भाषा में लिनक्स "चर" की एक अंतर्दृष्टि - भाग 9

    हम पहले ही Linux Shell Scripting . पर लेखों की एक श्रृंखला लिख ​​चुके हैं जिसका उस समय गर्मजोशी से स्वागत किया गया था और यह अब भी काफी प्रासंगिक था। शेल स्क्रिप्टिंग पर लेखों के संग्रह का लिंक यहां दिया गया है। लिनक्स शैल स्क्रिप्टिंग सीखें यहां इस लेख में हम चर . देखेंगे , इसका निष्पादन और शेल स