Jadranje skozi svet Linux skriptov BASH - III. Del


Prejšnji naslednji članki serije »Shell Scripting« so bili zelo cenjeni, zato pišem ta članek, da bi podaljšal nikoli končan proces učenja.

  1. Razumevanje osnovnih nasvetov za skriptni jezik lupine Linux - I. del
  2. 5 skriptov lupine za začetnike Linuxa, ki se učijo programiranja lupine - II. del

Ključna beseda je beseda ali simbol, ki ima poseben pomen za računalniški jezik. Naslednji simboli in besede imajo Bash poseben pomen, ko so uvrščeni brez navedbe in prva beseda ukaza.

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

V nasprotju z večino računalniških jezikov Bash omogoča uporabo ključnih besed kot imen spremenljivk, čeprav lahko skripte oteži branje. Da bi bili skripti razumljivi, ključnih besed ne bi smeli uporabljati za imena spremenljivk.

Ukaz je v lupini izveden kot $(ukaz). Morda boste morali vključiti celotno pot ukaza. npr. & # 36 (/ bin/date), za pravilno izvedbo.

Pot določenega programa morda poznate z ukazom 'whereis'. npr. kje je datum

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

Za zdaj je dovolj. O teh teorijah zdaj ne bomo veliko govorili. Prihaja do skript.

Premakni trenutni delovni imenik

Premaknite se iz trenutnega delovnega imenika na katero koli raven navzgor, tako da med izvajanjem preprosto navedete številčno vrednost na koncu skripta.

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

Zgornje kode shranite kot »up.sh« na namizje. Naj bo izvršljiv (chmod 755 up.sh). Zaženi:

./up.sh 2 (trenutni delovni imenik bo premaknil na dve stopnji navzgor).
./up.sh 4 (bo trenutni delovni imenik premaknil na štiri stopnje navzgor).

V večjih skriptah, ki vsebujejo mapo znotraj mape znotraj…, ki vsebujejo knjižnice, binarne datoteke, ikone, izvedljive datoteke itd. Na različnih lokacijah, lahko kot razvijalec izvedete ta skript, da se zelo samodejno premaknete na želeno mesto.

Opomba: For je zanka v zgornjem skriptu in se bo izvajala še naprej, dokler vrednosti zanke ne bodo resnične.

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

 ./up.sh 4 
You are in: / 

Ustvarite naključno datoteko ali mapo

Ustvarite naključno datoteko (mapo) brez možnosti podvajanja.

#! /bin/bash

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

To je preprost skript, vendar deluje ni tako preprosto.

  1. ‘echo‘: natisne vse, kar je zapisano znotraj narekovajev.
  2. ‘$‘: Je spremenljivka lupine.
  3. ‘>>‘: izhod se preusmeri na izhod ukaza datum, ki mu sledi razširitev txt.

Vemo, da je rezultat ukaza datum datum in čas v uri, minuti, sekundi skupaj z letom. Tako bi lahko dobili izpise za organizirano ime datoteke brez možnosti podvajanja imena datoteke. Lahko bi bilo zelo koristno, če uporabnik potrebuje datoteko, ustvarjeno s časovnim žigom, za nadaljnjo uporabo.

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

Datoteko, ki je ustvarjena na namizju, si lahko ogledate z današnjim datumom in trenutnim časom.

 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

Spodaj je podana podrobnejša izvedba zgornjega skripta, ki deluje po zgornjem principu in je zelo koristen pri zbiranju omrežnih informacij strežnika Linux.

Skripta za zbiranje omrežnih informacij

Zbira informacije o omrežju na strežniku Linux. Skript je prevelik in tukaj ni mogoče objaviti celotne kode in izhoda skripta. Torej, bolje je, da skript prenesete s spodnjo povezavo za prenos in ga preizkusite sami.

Opomba: Morda boste morali namestiti paket lsb-core in druge zahtevane pakete ter odvisnost. Apt ali Yum zahtevane pakete. Očitno je, da za zagon skripta potrebujete root, ker je večina tukaj uporabljenih ukazov konfigurirana za zagon kot root.

 ./collectnetworkinfo.sh  

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

Zgornji e-poštni naslov lahko spremenite v skriptu, da vam bo poslan po pošti. Ogledate si lahko samodejno ustvarjeno datoteko.

Script to Pretvori UPPERCASE v male črke

Skript, ki pretvori UPPERCASE v male črke in preusmeri izhod v besedilno datoteko "small.txt", ki jo je mogoče po potrebi spremeniti.

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

Ta zgornji skript lahko pretvori primer datoteke katere koli dolžine z enim samim klikom iz velikega v malega črko in obratno, če je potrebno, z malo spremembami.

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

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

Izhod nove datoteke (small.txt):

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

Preprost kalkulator

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

Torej ste videli, kako enostavno je bilo na preprost način ustvariti zmogljiv program, kot so izračuni. To še ni konec. Pripravili bomo vsaj še en članek iz te serije, ki bo s stališča uprave zajemal široko perspektivo.

To je vse za zdaj. Ker ste bralec in najboljši kritik, nam ne pozabite povedati, koliko in kaj ste uživali v tem članku in kaj želite videti v prihodnjem članku. Vsako vprašanje je zelo dobrodošlo v komentarju. Do takrat ostanite zdravi, varni in nastavljeni. Všečkajte in delite nas in nam pomagajte pri širjenju.