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


Script शेल स्क्रिप्टिंग highly श्रृंखला के पिछले निम्नलिखित लेखों को बहुत सराहा गया था और इसलिए मैं इस लेख को सीखने की कभी न खत्म होने वाली प्रक्रिया का विस्तार करने के लिए लिख रहा हूं।

  1. मूल लिनक्स शेल स्क्रिप्टिंग भाषा टिप्स को समझें - भाग I
  2. 5 शेल प्रोग्रामिंग के लिए शेल स्क्रिप्ट के लिए शेल प्रोग्रामिंग - भाग II

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

! 			esac 			select 		} 
case 			fi 			then 		[[ 
do 			for 			until 		]] 
done 			function 		while 		elif
if 			time 			else 		in 		{

अधिकांश कंप्यूटर भाषाओं के विपरीत, बैश कीवर्ड को चर नामों के रूप में उपयोग करने की अनुमति देता है, हालांकि यह स्क्रिप्ट को पढ़ने में मुश्किल बना सकता है। लिपियों को समझने के लिए, कुंजी-शब्दों का उपयोग चर नामों के लिए नहीं किया जाना चाहिए।

शेल में $ (कमांड) के रूप में एक कमांड लागू किया जाता है। आपको कमांड का पूरा पथ शामिल करना पड़ सकता है। जैसे, और # 36 (/ बिन/तारीख), सही निष्पादन के लिए।

आप know जहाँ the कमांड का उपयोग करके विशिष्ट कार्यक्रम का मार्ग जान सकते हैं। जैसे, तारीख

 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)। Daud:

./up.sh 2 (वर्तमान कार्यशील निर्देशिका को दो स्तर तक ले जाएगा)।
./up.sh 4 (वर्तमान कार्यशील निर्देशिका को चार स्तर तक ले जाएगा)।

बड़ी स्क्रिप्ट में जो अंदर फ़ोल्डर में फ़ोल्डर होता है ... अलग-अलग स्थान पर पुस्तकालयों, बायनेरिज़, आइकन, निष्पादन योग्य, आदि के साथ, आप एक डेवलपर के रूप में इस स्क्रिप्ट को बहुत स्वचालित तरीके से वांछित स्थान पर स्थानांतरित करने के लिए लागू कर सकते हैं।

नोट: उपरोक्त लिपि में एक लूप है और लूप के लिए मान सही होने तक इसे निष्पादित करता रहेगा।

 chmod 755 up
 ./up.sh 2
You are in: /

 ./up.sh 4 
You are in: / 

एक रैंडम फ़ाइल या फ़ोल्डर बनाएँ

नकल की कोई संभावना नहीं के साथ एक यादृच्छिक फ़ाइल (फ़ोल्डर) बनाएँ।

#! /bin/bash

echo "Hello $USER";
echo "$(uptime)" >> "$(date)".txt
echo "Your File is being saved to $(pwd)"

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

  1. ‘इको‘: उद्धरणों के भीतर लिखी गई सभी चीज़ों को प्रिंट करता है।
  2. li $ ‘: एक शैल चर है।
  3. ‘>>‘: आउटपुट को txt एक्सटेंशन के बाद डेट कमांड के आउटपुट पर रीडायरेक्ट किया जाता है।

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

 ./randomfile.sh  
Hello server 
Your File is being saved to /home/server/Desktop

आप आज के दिनांक और वर्तमान समय के साथ डेस्कटॉप पर बनाई गई फ़ाइल देख सकते हैं।

 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

उपरोक्त स्क्रिप्ट का अधिक विस्तृत कार्यान्वयन नीचे दिया गया है, जो उपरोक्त सिद्धांत पर काम करता है और लिनक्स सर्वर की नेटवर्क जानकारी को इकट्ठा करने में बहुत उपयोगी है।

नेटवर्क जानकारी एकत्र करने के लिए स्क्रिप्ट

एक लिनक्स सर्वर पर नेटवर्क जानकारी इकट्ठा करता है। स्क्रिप्ट बहुत बड़ी है और यहां स्क्रिप्ट का पूरा कोड और आउटपुट पोस्ट करना संभव नहीं है। तो, यह बेहतर है कि आप नीचे दिए गए लिंक का उपयोग करके स्क्रिप्ट डाउनलोड कर सकते हैं और इसे स्वयं परीक्षण कर सकते हैं।

नोट: आपको lsb-core पैकेज और अन्य आवश्यक पैकेज और निर्भरता स्थापित करने की आवश्यकता हो सकती है। Apt या यम आवश्यक पैकेज। जाहिर है आपको स्क्रिप्ट को चलाने के लिए रूट होने की आवश्यकता है क्योंकि यहां उपयोग की जाने वाली अधिकांश कमांड को रूट के रूप में चलाने के लिए कॉन्फ़िगर किया गया है।

 ./collectnetworkinfo.sh  

The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to [email _provider.com. ktop

आप अपनी ईमेल में उपरोक्त ईमेल पता बदल सकते हैं ताकि उसे आपको मेल किया जा सके। स्वचालित रूप से बनाई गई फ़ाइल देखी जा सकती है।

स्क्रिप्ट लोअरकेस में उत्तर प्रदेश को धर्मान्तरित करता है

एक स्क्रिप्ट जो UPPERCASE को लोअरकेस में कनवर्ट करती है और आउटपुट को एक टेक्स्ट फाइल "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

यह उपरोक्त स्क्रिप्ट किसी भी लम्बाई की फ़ाइल के मामले को अपरकेस से लोअरकेस में एक क्लिक और लोअर-वर्सा में, यदि आवश्यक हो, थोड़ा संशोधन के साथ परिवर्तित कर सकती है।

 ./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
...

सरल कैलकुलेटर प्रोग्राम

#! /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
 ./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

तो क्या आपने देखा कि गणना के रूप में एक शक्तिशाली कार्यक्रम बनाना कितना आसान था। यह अंत नहीं है। हम इस सीरीज़ के कम से कम एक और लेख के साथ संकलित करेंगे, जो प्रशासन के दृष्टिकोण से व्यापक परिप्रेक्ष्य को कवर करेगा।

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