Áthajózás a Linux BASH Scripting világán – III. rész
A „Shell Scripting” sorozat korábbi következő cikkeit nagyra értékelték, ezért ezt a cikket a tanulás véget nem érő folyamatának kiterjesztése érdekében írom.
- Alapvető Linux Shell Scripting nyelvi tippek – I. rész
- 5 Shell Script Linux kezdőknek a Shell programozás elsajátításához – II. rész
Bash kulcsszavak
A kulcsszó olyan szó vagy szimbólum, amelynek különleges jelentése van egy számítógépes nyelv számára. A következő szimbólumok és szavak különleges jelentéssel bírnak a Bash számára, ha nem idézik őket, és a parancs első szava.
! esac select }
case fi then [[
do for until ]]
done function while elif
if time else in {
A legtöbb számítógépes nyelvtől eltérően a Bash lehetővé teszi a kulcsszavak változónévként történő használatát, még akkor is, ha ez megnehezítheti a szkriptek olvasását. A szkriptek érthetősége érdekében nem szabad kulcsszavakat használni a változónevekhez.
A parancs shellben $(parancs) formában kerül megvalósításra. Lehetséges, hogy a parancs teljes elérési útját meg kell adnia. például $ (/bin/date) a helyes végrehajtás érdekében.
A „whereis” paranccsal ismerheti az adott program elérési útját. például: hol a dátum
[root@tecmint /]# whereis date
date: /bin/date /usr/share/man/man1/date.1.gz
Egyelőre ennyi elég. Ezekről az elméletekről most nem fogunk sokat beszélni. Jön a Scripts.
Az aktuális munkakönyvtár áthelyezése
Lépjen az aktuális munkakönyvtárból bármely szintre feljebb úgy, hogy végrehajtás közben csak a számértéket adja meg a szkript végén.
#! /bin/bash
LEVEL=$1
for ((i = 1; i <= LEVEL; i++))
do
CDIR=../$CDIR
done
cd $CDIR
echo "You are in: "$PWD
exec /bin/bash
Mentse el a fenti kódokat „up.sh” néven az asztalon. Tegye végrehajthatóvá (chmod 755 up.sh). Fuss:
./up.sh 2 (két szinttel feljebb helyezi az aktuális munkakönyvtárat).
./up.sh 4 (az aktuális munkakönyvtár négy szinttel feljebb kerül).
Felhasználás és alkalmazási terület
Nagyobb szkriptekben, amelyek mappát tartalmaznak a mappán belül… amelyekben könyvtárak, binárisok, ikonok, futtatható fájlok stb. helyen, Ön mint fejlesztő megvalósíthatja ezt a szkriptet, hogy nagyon automatizált módon mozogjon a kívánt helyre.
Megjegyzés: A For egy ciklus a fenti szkriptben, és addig fut, amíg az értékek igazak lesznek a ciklusra.
Minta kimenet
[root@tecmint /]# chmod 755 up
[root@tecmint /]# ./up.sh 2
You are in: /
[root@tecmint /]# ./up.sh 4
You are in: /
[root@tecmint /]#
Töltse le az up.sh
Hozzon létre egy véletlenszerű fájlt vagy mappát
Hozzon létre egy véletlenszerű fájlt (mappát) a többszörözés esélye nélkül.
#! /bin/bash
echo "Hello $USER";
echo "$(uptime)" >> "$(date)".txt
echo "Your File is being saved to $(pwd)"
Ez egy egyszerű szkript, de nem olyan egyszerű a működése.
- ’visszhang’ : Mindent kinyomtat, ami az idézőjelben van.
- '$' : shell-változó.
- ‘>’ : A kimenet a dátum parancs kimenetére, majd a txt kiterjesztésre kerül átirányításra.
Tudjuk, hogy a date parancs kimenete a dátum és az idő órában, percben második az év mellett. Így a kimenetet egy rendezett fájlnéven kaphatnánk anélkül, hogy a fájlnév-másolódás lehetősége lenne. Nagyon hasznos lehet, ha a felhasználónak szüksége van az időbélyegzővel létrehozott fájlra későbbi hivatkozás céljából.
Minta kimenet
[root@tecmint /]# ./randomfile.sh
Hello server
Your File is being saved to /home/server/Desktop
Megtekintheti az asztalon létrehozott fájlt a mai dátummal és az aktuális idővel.
[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
Az alábbiakban bemutatjuk a fenti szkript részletesebb megvalósítását, amely a fenti elven működik, és nagyon hasznos a Linux szerver hálózati információinak összegyűjtéséhez.
Töltse le a randomfile.sh fájlt
Szkript a hálózati információk gyűjtéséhez
Hálózati információkat gyűjt egy Linux szerveren. A szkript túl nagy, és itt nem lehet a teljes kódot és a szkript kimenetét közzétenni. Tehát jobb, ha letölti a szkriptet az alábbi letöltési link segítségével, és saját maga teszteli.
Megjegyzés: Lehet, hogy telepítenie kell az lsb-core csomagot és más szükséges csomagokat és függőséget. Apt vagy Yum a szükséges csomagokat. Nyilvánvalóan root-nak kell lennie a szkript futtatásához, mert az itt használt parancsok többsége rootként van beállítva.
Minta kimenet
[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
Módosíthatja a fenti e-mail címet a szkriptjében, hogy elküldjük Önnek. Az automatikusan generált fájl megtekinthető.
Töltse le a collectionnetworkinfo.sh-t
Script to A NAGYBETŰT kisbetűvé alakítja
Egy szkript, amely a NAGYBETŰ-et kisbetűvé alakítja, és a kimenetet egy „small.txt” szövegfájlba irányítja, amely szükség szerint módosítható.
#!/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
Ez a fenti szkript képes bármilyen hosszúságú fájl kis- és nagybetűjét egyetlen kattintással átalakítani nagybetűről kisbetűre és fordítva, ha szükséges, kis módosítással.
Minta kimenet
[root@tecmint /]# ./convertlowercase.sh
Enter File Name : a.txt
Initial File:
A
B
C
D
E
F
G
H
I
J
K
...
Új fájl (small.txt) kimenete:
a
b
c
d
e
f
g
h
i
j
k
...
Töltse le a convertlowercase.sh-t
Egyszerű kalkulátor program
#! /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
Minta kimenet
[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
Töltse le a simplecalc.sh-t
Láttad-e, milyen könnyű volt létrehozni egy hatékony programot, mivel ilyen egyszerű módon számításokat végezhetsz. Nem a vége. Ebből a sorozatból még legalább egy cikkel készülünk, amely széles perspektívát fed le a közigazgatás szempontjából.
Ez minden most. Olvasóként és legjobb kritikusként ne felejtse el elmondani nekünk, hogy mennyire és mit élvezett ebben a cikkben, és mit szeretne látni a következő cikkben. Bármilyen kérdést szívesen fogadunk kommentben. Addig is maradjon egészséges, biztonságos és hangolt. Lájkold és Oszd meg minket, és segíts a terjedésünkben.