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.

  1. Razumjeti osnovne savjete za jezik skriptiranja za Linux Shell – I dio
  2. 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.

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