Qlugħ Permezz tad-Dinja tal-Linux BASH Scripting - Parti III


L-artikoli ta 'qabel li ġejjin tas-serje Shell Scripting kienu apprezzati ħafna u għalhekk qed nikteb dan l-artikolu biex testendi l-proċess ta' tagħlim li ma jintemm qatt.

  1. Fhem Tips Bażiċi dwar il-Lingwa tal-Linux Shell Scripting – Parti I
  2. 5 Shell Scripts għall-Linux Newbies biex Tgħallem Shell Programming – Parti II

Keyword hija kelma jew simbolu li għandha tifsira speċjali għal lingwa tal-kompjuter. Is-simboli u l-kliem li ġejjin għandhom tifsiriet speċjali għal Bash meta ma jkunux ikkwotati u l-ewwel kelma ta 'kmand.

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

B'differenza mill-biċċa l-kbira tal-lingwi tal-kompjuter, Bash jippermetti li l-kliem kjavi jintużaw bħala ismijiet varjabbli minkejja li dan jista' jagħmel l-iskripts diffiċli biex jinqraw. Biex l-iskripts jinftiehmu, kliem ewlieni m'għandux jintuża għal ismijiet varjabbli.

Kmand huwa implimentat fil-qoxra bħala $(kmand). Jista 'jkollok tinkludi t-triq sħiħa tal-kmand. eż., $ (/bin/date), għal eżekuzzjoni korretta.

Tista 'tkun taf il-mogħdija ta' programm speċifiku billi tuża l-kmand 'whereis'. eż., fejn hija d-data

 whereis date
date: /bin/date /usr/share/man/man1/date.1.gz

Dak huwa biżżejjed għalissa. Mhux se nkunu qed nitkellmu ħafna dwar dawn it-teorija issa. Niġu għall-Iskripts.

Mexxi Direttorju ta' Ħidma Kurrenti

Nimxu mid-direttorju tax-xogħol attwali għal kwalunkwe livell 'il fuq billi tipprovdi biss il-valur numeriku fl-aħħar tal-iskrittura waqt l-eżekuzzjoni.

#! /bin/bash 
LEVEL=$1 
for ((i = 1; i <= LEVEL; i++)) 
do 
CDIR=../$CDIR 
done 
cd $CDIR 
echo "You are in: "$PWD 
exec /bin/bash

Issejvja l-kodiċi ta' hawn fuq bħala up.sh, fuq id-desktop tiegħek. Agħmilha eżekutibbli (chmod 755 up.sh). Mexxi:

./up.sh 2 (se Ċaqlaq id-direttorju tax-xogħol kurrenti għal żewġ livelli 'l fuq).
./up.sh 4 (se Mexxi d-direttorju tax-xogħol kurrenti għal erba 'livell 'l fuq).

Fi skripts akbar li fih folder ġewwa folder ġewwa... li jkun fih libreriji, binarji, ikoni, eżekutibbli, eċċ f'post differenti, Inti bħala żviluppatur tista' timplimenta din l-iskrittura biex timxi lejn il-post mixtieq b'mod awtomatizzat ħafna.

Nota: Għal hija linja fl-iskrittura ta 'hawn fuq u se tkompli tesegwixxi sakemm il-valuri jkunu veri għal-linja.

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

 ./up.sh 4 
You are in: / 

Oħloq Fajl jew Folder każwali

Oħloq fajl każwali (folder) bl-ebda ċans ta 'duplikazzjoni.

#! /bin/bash

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

Din hija skript Sempliċi iżda li qed taħdem mhix daqshekk sempliċi.

  1. ‘echo’ : Tipprintja dak kollu miktub fil-kwotazzjonijiet.
  2. ‘$’ : Hija varjabbli tal-qoxra.
  3. ‘>>‘ : L-output jiġi ridirett lejn l-output tal-kmand tad-data segwit minn estensjoni txt.

Nafu li l-output tal-kmand tad-data huwa d-data, u l-ħin f'siegħa, minuta, sekonda flimkien mas-sena. Għalhekk nistgħu niksbu output fuq isem tal-fajl organizzat mingħajr iċ-ċans ta 'duplikazzjoni tal-isem tal-fajl. Jista 'jkun utli ħafna meta l-utent jeħtieġ il-fajl maħluq b'timbru tal-ħin għal referenza futura.

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

Tista' tara l-fajl li jinħoloq fuq id-desktop bid-Data tal-lum u l-ħin kurrenti.

 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

Implimentazzjoni aktar dettaljata ta 'l-iskrittura ta' hawn fuq tingħata hawn taħt, li taħdem fuq il-prinċipju ta 'hawn fuq u hija utli ħafna biex tiġbor l-informazzjoni tan-netwerk ta' server Linux.

Script biex Tiġbor Informazzjoni tan-Netwerk

Tiġbor informazzjoni tan-netwerk fuq server Linux. L-iskrittura hija kbira wisq u mhux possibbli li tpoġġi l-kodiċi u l-output kollu tal-iskritt hawn. Għalhekk, huwa aħjar li tista 'tniżżel l-iskrittura billi tuża l-link tat-tniżżil hawn taħt u tittestja lilek innifsek.

Nota: Jista 'jkollok bżonn tinstalla pakkett lsb-core u pakketti u dipendenza oħra meħtieġa. Apt jew Yum il-pakketti meħtieġa. Ovvjament jeħtieġ li tkun root biex tmexxi l-iskrittura minħabba li ħafna mill-kmandi użati hawn huma kkonfigurati biex jitmexxew bħala root.

 ./collectnetworkinfo.sh  

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

Tista' tibdel l-indirizz tal-email ta' hawn fuq fl-iskrittura tiegħek biex tintbagħat lilek. Il-fajl iġġenerat awtomatikament jista' jaraha.

Skript biex Tikkonverti UPPERCASE f'ittri żgħar

Skript li jikkonverti UPPERCASE f'ittri żgħar u jidderieġi mill-ġdid l-output għal fajl ta 'test small.txt li jista' jiġi modifikat kif meħtieġ.

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

Din l-iskrittura ta' hawn fuq tista' tikkonverti l-każ ta' fajl ta' kwalunkwe tul bi klikk waħda minn kbar għal minuskula u viċi-versa jekk meħtieġ, bi ftit modifika.

 ./convertlowercase.sh  
Enter File Name : a.txt 

Initial File: 
A
B
C
D
E
F
G
H
I
J
K
...

Produzzjoni tal-Fajl Ġdid (small.txt):

a
b
c
d
e
f
g
h
i
j
k
...

Programm Kalkulatur sempliċi

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

Allura rajt kemm kien faċli li toħloq programm qawwi bħala kalkoli b'mod daqshekk sempliċi. Mhux it-tmiem tiegħu. Aħna se nkunu qed nippreparaw mill-inqas artiklu ieħor ta 'din is-serje, li jkopri perspettiva wiesgħa mill-perspettiva tal-amministrazzjoni.

Dak kollu għalissa. Billi tkun il-qarrej u l-aqwa kritiku tinsiex tgħidilna kemm u x’għoġbu f’dan l-artiklu u x’tixtieq tara fl-artiklu futur. Kwalunkwe mistoqsija hija milqugħa ħafna fil-kumment. Sa dakinhar ibqa’ b’saħħtu, sigur u sintonizzat. Like u Share u għinna nfirxu.