Plovidba kroz svijet Linux BASH skriptiranja - III dio
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.
- Razumjeti osnovne savjete za jezik skriptiranja za Linux Shell – I dio
- 5 Shell skripti za Linux početnike da nauče Shell programiranje – II dio
Bash Keywords
Ključna riječ je riječ ili simbol koji ima posebno značenje za kompjuterski 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 kompjuterskih jezika, Bash dozvoljava korištenje ključnih riječi kao imena varijabli iako to može otežati čitanje skripti. Da bi skripte bile razumljive, ključne riječi se ne bi trebale koristiti za imena varijabli.
Komanda se implementira u shell kao $(komanda). Možda ćete morati uključiti punu putanju komande. npr., $ (/bin/date), za ispravno izvršenje.
Možda znate putanju 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 pričati o ovoj teoriji. Dolazimo do skripti.
Premjesti trenutni radni imenik
Pređite sa trenutnog radnog direktorijuma na bilo koji nivo gore tako što ćete samo dati numeričku vrednost na kraju skripte tokom izvršavanja.
#! /bin/bash
LEVEL=$1
for ((i = 1; i <= LEVEL; i++))
do
CDIR=../$CDIR
done
cd $CDIR
echo "You are in: "$PWD
exec /bin/bash
Sačuvajte gornje kodove kao „up.sh“, na radnoj površini. Učinite ga izvršnim (chmod 755 up.sh). trčanje:
./up.sh 2 (premjestiće trenutni radni direktorij na dva nivoa više).
./up.sh 4 (premjestiće trenutni radni direktorij na četiri nivoa gore).
Upotreba i područje primjene
U većim skriptama koje sadrže folder unutar foldera unutar… koji sadrži biblioteke, binarne datoteke, ikone, izvršne datoteke, itd na različitim lokacija, vi kao programer možete implementirati ovu skriptu da biste se preselili na željenu lokaciju na vrlo automatiziran način.
Napomena: For je petlja u gornjoj skripti i nastavit će se izvršavati sve dok vrijednosti ne budu istinite za petlju.
Sample Output
[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
Kreirajte nasumični fajl ili fasciklu
Kreirajte nasumični fajl (mapu) bez šanse za dupliranje.
#! /bin/bash
echo "Hello $USER";
echo "$(uptime)" >> "$(date)".txt
echo "Your File is being saved to $(pwd)"
Ovo je jednostavna skripta, ali funkcionira nije tako jednostavno.
- 'echo' : Štampa sve što je napisano unutar navodnika.
- '$' : je varijabla ljuske.
- ‘>>’ : Izlaz se preusmjerava na izlaz naredbe date praćen ekstenzijom txt.
Znamo da je izlaz naredbe datum datum i vrijeme u sati, minuti, jak> drugi zajedno sa godinom. Stoga bismo mogli dobiti izlaz na organiziranom imenu datoteke bez mogućnosti dupliciranja imena datoteke. Moglo bi biti veoma korisno kada korisniku treba fajl kreiran sa vremenskom oznakom za buduću upotrebu.
Sample Output
[root@tecmint /]# ./randomfile.sh
Hello server
Your File is being saved to /home/server/Desktop
Možete pogledati fajl koji je kreiran na desktopu sa 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
Detaljnija implementacija gornje skripte je data u nastavku, koja radi na gore navedenom principu i vrlo je korisna u prikupljanju mrežnih informacija Linux servera.
Preuzmite randomfile.sh
Skripta za prikupljanje informacija o mreži
Prikuplja informacije o mreži na Linux serveru. Skripta je prevelika i nije moguće postaviti cijeli kod i izlaz skripte ovdje. Dakle, bolje je da preuzmete skriptu koristeći donju vezu za preuzimanje i sami je testirate.
Napomena: Možda ćete morati instalirati lsb-core paket i druge potrebne pakete i ovisnost. Apt ili Yum potrebni paketi. Očigledno morate biti root da biste pokrenuli skriptu jer je većina komandi korištenih ovdje konfigurirana da se pokreće kao root.
Sample Output
[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 biste je poslali poštom. Automatski generirana datoteka se može vidjeti.
Preuzmite collectnetworkinfo.sh
Skripta u Pretvara VELIKA SLOVENA u mala slova
Skripta koja konvertuje VELIKA SLOVENA u mala slova i preusmjerava izlaz u tekstualnu datoteku “small.txt” koja se može mijenjati po potrebi.
#!/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 jednim klikom konvertirati mala slova u fajlu bilo koje dužine iz velikih slova u mala i obrnuto, ako je potrebno, uz male izmjene.
Sample Output
[root@tecmint /]# ./convertlowercase.sh
Enter File Name : a.txt
Initial File:
A
B
C
D
E
F
G
H
I
J
K
...
Izlaz nove datoteke (small.txt):
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
Sample Output
[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 bilo lako stvoriti moćan program kao proračun na tako jednostavan način. Nije kraj. Napravit ćemo još barem još jedan članak iz ove serije, koji pokriva široku perspektivu iz gledišta administracije.
To je sve za sada. Budući da ste čitalac i najbolji kritičar, ne zaboravite da nam kažete koliko i u čemu ste uživali u ovom članku i šta želite da vidite u narednom članku. Svako pitanje je dobrodošlo u komentaru. Do tada ostanite zdravi, sigurni i naglašeni. Lajkujte i Podijelite nas i pomozite nam da se širimo.