Plovidba kroz svijet Linuxa BASH skriptiranje - dio III
Prethodni sljedeći članci iz serije ‘Shell Scripting’ bili su vrlo cijenjeni i stoga pišem ovaj članak kako bih produžio beskrajni proces učenja.
- Razumijevanje osnovnih savjeta o skriptnom jeziku Linux ljuske – I. dio
- 5 Shell skripti za početnike u Linuxu za učenje programiranja ljuske – II. dio
Bash ključne riječi
Ključna riječ je riječ ili simbol koji ima posebno značenje za računalni jezik. Sljedeći simboli i riječi imaju posebna značenja za Bash kada su bez navodnika i prva riječ naredbe.
! esac select }
case fi then [[
do for until ]]
done function while elif
if time else in {
Za razliku od većine računalnih jezika, Bash dopušta korištenje ključnih riječi kao imena varijabli iako to može otežati čitanje skripti. Kako bi skripte bile razumljive, ključne riječi ne bi se trebale koristiti za nazive varijabli.
Naredba je implementirana u ljusci kao $(naredba). Možda ćete morati uključiti puni put naredbe. npr. $ (/bin/date), za ispravno izvođenje.
Možda znate put određenog programa pomoću naredbe ‘whereis’. npr. gdje je datum
[root@tecmint /]# whereis date
date: /bin/date /usr/share/man/man1/date.1.gz
To je dovoljno za sada. Nećemo sada puno govoriti o ovim teorijama. Dolazimo do Skripti.
Premjesti trenutni radni direktorij
Premjestite se iz trenutnog radnog direktorija na bilo koju višu razinu samo unosom numeričke vrijednosti na kraju skripte tijekom izvođenja.
#! /bin/bash
LEVEL=$1
for ((i = 1; i <= LEVEL; i++))
do
CDIR=../$CDIR
done
cd $CDIR
echo "You are in: "$PWD
exec /bin/bash
Spremite gore navedene kodove kao “up.sh“, na radnoj površini. Učinite ga izvršnim (chmod 755 up.sh). Trčanje:
./up.sh 2 (premjestit će trenutni radni direktorij na dvije razine više).
./up.sh 4 (premjestit će trenutni radni direktorij na četiri razine više).
Upotreba i područje primjene
U većim skriptama koje sadrže mapu unutar mape unutar… koja sadrži biblioteke, binarne datoteke, ikone, izvršne datoteke itd. na različitim lokaciju, Vi kao razvojni programer možete implementirati ovu skriptu za premještanje na željenu lokaciju na vrlo automatiziran način.
Napomena: For je petlja u gornjoj skripti i nastavit će se izvršavati sve dok vrijednosti za petlju ne budu točne.
Uzorak izlaza
[root@tecmint /]# chmod 755 up
[root@tecmint /]# ./up.sh 2
You are in: /
[root@tecmint /]# ./up.sh 4
You are in: /
[root@tecmint /]#
Preuzmite up.sh
Napravite slučajnu datoteku ili mapu
Napravite slučajnu datoteku (mapu) bez mogućnosti dupliciranja.
#! /bin/bash
echo "Hello $USER";
echo "$(uptime)" >> "$(date)".txt
echo "Your File is being saved to $(pwd)"
Ovo je jednostavna skripta, ali funkcioniranje nije tako jednostavno.
- ‘echo’ : ispisuje sve što je napisano unutar navodnika.
- ‘$’: je varijabla ljuske.
- ‘>>’ : Izlaz se preusmjerava na izlaz naredbe datum nakon koje slijedi proširenje txt.
Znamo da je izlaz naredbe datum datum i vrijeme u satu, minuti, drugi zajedno s godinom. Stoga bismo mogli dobiti izlaz na organiziranom nazivu datoteke bez mogućnosti dupliciranja naziva datoteke. Moglo bi biti vrlo korisno kada korisnik treba datoteku stvorenu s vremenskom oznakom za buduću upotrebu.
Uzorak izlaza
[root@tecmint /]# ./randomfile.sh
Hello server
Your File is being saved to /home/server/Desktop
Možete pogledati datoteku koja je stvorena na radnoj površini s današnjim datumom i trenutnim vremenom.
[root@tecmint /]# 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
U nastavku je dana detaljnija implementacija gornje skripte, koja radi na gore navedenom principu i vrlo je korisna u prikupljanju mrežnih informacija Linux poslužitelja.
Preuzmite randomfile.sh
Skripta za prikupljanje informacija o mreži
Prikuplja informacije o mreži na Linux poslužitelju. Skripta je prevelika i nije moguće ovdje objaviti cijeli kod i izlaz skripte. Stoga je bolje da skriptu preuzmete pomoću donje veze za preuzimanje i testirate je sami.
Napomena: Možda ćete morati instalirati paket lsb-core i druge potrebne pakete i ovisnosti. Apt ili Yum potrebni paketi. Očito morate biti root da pokrenete skriptu jer je većina naredbi koje se ovdje koriste konfigurirana za pokretanje kao root.
Uzorak izlaza
[root@tecmint /]# ./collectnetworkinfo.sh
The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to your_name@service_provider.com. ktop
Možete promijeniti gornju adresu e-pošte u svojoj skripti kako bi vam je poslali. Automatski generirana datoteka se može vidjeti.
Preuzmite collectnetworkinfo.sh
Skripta za Pretvara VELIKA SLOVA u mala slova
Skripta koja pretvara VELA SLOVA u mala slova i preusmjerava izlaz u tekstualnu datoteku “small.txt” koja se po potrebi može mijenjati.
#!/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
Ova gornja skripta može pretvoriti velika slova datoteke bilo koje duljine jednim klikom iz velikih u mala i obrnuto ako je potrebno, uz male izmjene.
Uzorak izlaza
[root@tecmint /]# ./convertlowercase.sh
Enter File Name : a.txt
Initial File:
A
B
C
D
E
F
G
H
I
J
K
...
Nova datoteka (small.txt) izlaz:
a
b
c
d
e
f
g
h
i
j
k
...
Preuzmite convertlowercase.sh
Jednostavan program kalkulatora
#! /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
Uzorak izlaza
[root@tecmint /]# ./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
Preuzmite simplecalc.sh
Jeste li vidjeli kako je lako stvoriti moćan program kao što su izračuni na tako jednostavan način. Nije kraj. Nadovezat ćemo se s barem još jednim člankom iz ove serije, pokrivajući široku perspektivu iz perspektive administracije.
To je sve za sada. Budući da ste čitatelj i najbolji kritičar, ne zaboravite nam reći koliko i u čemu ste uživali u ovom članku i što želite vidjeti u budućem članku. Svako pitanje je dobrodošlo u komentaru. Do tada ostanite zdravi, sigurni i ugođeni. Lajkajte i Podijelite nas i pomozite nam da se širimo.