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.

  1. Razumijevanje osnovnih savjeta o skriptnom jeziku Linux ljuske – I. dio
  2. 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.

  1. echo’ : ispisuje sve što je napisano unutar navodnika.
  2. $’: je varijabla ljuske.
  3. >>’ : 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.