Website-Suche

Segeln durch die Welt der Linux-BASH-Skripterstellung – Teil III


Die folgenden Artikel der Reihe „Shell Scripting“ wurden sehr geschätzt und daher schreibe ich diesen Artikel, um den nie endenden Prozess des Lernens zu erweitern.

  1. Verstehen Sie grundlegende Tipps zur Linux-Shell-Skriptsprache – Teil I
  2. 5 Shell-Skripte für Linux-Neulinge zum Erlernen der Shell-Programmierung – Teil II
Bash-Schlüsselwörter

Ein Schlüsselwort ist ein Wort oder Symbol, das für eine Computersprache eine besondere Bedeutung hat. Die folgenden Symbole und Wörter haben für Bash eine besondere Bedeutung, wenn sie nicht in Anführungszeichen stehen und das erste Wort eines Befehls sind.

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

Im Gegensatz zu den meisten Computersprachen erlaubt Bash die Verwendung von Schlüsselwörtern als Variablennamen, auch wenn dies die Lesbarkeit von Skripten erschweren kann. Um die Verständlichkeit von Skripten zu gewährleisten, sollten Schlüsselwörter nicht für Variablennamen verwendet werden.

Ein Befehl wird in der Shell als $(Befehl) implementiert. Möglicherweise müssen Sie den vollständigen Befehlspfad angeben. z. B. $ (/bin/date), für die korrekte Ausführung.

Möglicherweise kennen Sie den Pfad eines bestimmten Programms mit dem Befehl „whereis“. z. B. whereis date

[root@tecmint /]# whereis date
date: /bin/date /usr/share/man/man1/date.1.gz

Das ist genug für jetzt. Wir werden jetzt nicht viel über diese Theorie sprechen. Kommen wir zu Skripten.

Aktuelles Arbeitsverzeichnis verschieben

Wechseln Sie vom aktuellen Arbeitsverzeichnis zu einer beliebigen Ebene nach oben, indem Sie während der Ausführung einfach den numerischen Wert am Ende des Skripts angeben.

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

Speichern Sie die oben genannten Codes als „up.sh“ auf Ihrem Desktop. Machen Sie es ausführbar (chmod 755 up.sh). Laufen:

./up.sh 2 (verschiebt das aktuelle Arbeitsverzeichnis um zwei Ebenen nach oben).
./up.sh 4 (verschiebt das aktuelle Arbeitsverzeichnis um vier Ebenen nach oben).

Verwendung und Anwendungsbereich

In größeren Skripten, die einen Ordner innerhalb eines Ordners enthalten, der Bibliotheken, Binärdateien, Symbole, ausführbare Dateien usw. auf verschiedene Weise enthält Standort: Sie als Entwickler können dieses Skript implementieren, um auf sehr automatisierte Weise zum gewünschten Standort zu gelangen.

Hinweis: For ist eine Schleife im obigen Skript und wird so lange ausgeführt, bis die Werte für die Schleife wahr sind.

Beispielausgabe
[root@tecmint /]# chmod 755 up
[root@tecmint /]# ./up.sh 2
You are in: /

[root@tecmint /]# ./up.sh 4 
You are in: / 

[root@tecmint /]#

Laden Sie up.sh herunter

Erstellen Sie eine zufällige Datei oder einen zufälligen Ordner

Erstellen Sie eine zufällige Datei (Ordner) ohne die Möglichkeit einer Duplizierung.

#! /bin/bash

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

Dies ist ein einfaches Skript, aber seine Funktionsweise ist nicht ganz so einfach.

  1. echo‘: Gibt alles aus, was in Anführungszeichen steht.
  2. $‘: Ist eine Shell-Variable.
  3. >>‘: Die Ausgabe wird zur Ausgabe des Befehls date gefolgt von der Erweiterung txt umgeleitet.

Wir wissen, dass die Ausgabe des Befehls date Datum und Zeit in Stunde, Minute ist. Sekunde zusammen mit Jahr. Daher könnten wir eine Ausgabe mit einem organisierten Dateinamen erhalten, ohne dass die Gefahr einer Duplizierung des Dateinamens besteht. Dies kann sehr nützlich sein, wenn der Benutzer die mit Zeitstempel erstellte Datei zum späteren Nachschlagen benötigt.

Beispielausgabe
[root@tecmint /]# ./randomfile.sh  
Hello server 
Your File is being saved to /home/server/Desktop

Sie können die auf dem Desktop erstellte Datei mit dem heutigen Datum und der aktuellen Uhrzeit anzeigen.

[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

Nachfolgend finden Sie eine detailliertere Implementierung des obigen Skripts, das nach dem oben genannten Prinzip funktioniert und sehr nützlich beim Sammeln der Netzwerkinformationen eines Linux-Servers ist.

Laden Sie randomfile.sh herunter

Skript zum Sammeln von Netzwerkinformationen

Sammelt Netzwerkinformationen auf einem Linux-Server. Das Skript ist zu groß und es ist nicht möglich, den gesamten Code und die Ausgabe des Skripts hier zu veröffentlichen. Es ist also besser, wenn Sie das Skript über den untenstehenden Download-Link herunterladen und es selbst testen.

Hinweis: Möglicherweise müssen Sie das Paket lsb-core und andere erforderliche Pakete und Abhängigkeiten installieren. Apt oder Yum die erforderlichen Pakete. Natürlich müssen Sie root sein, um das Skript auszuführen, da die meisten der hier verwendeten Befehle für die Ausführung als root konfiguriert sind.

Beispielausgabe
[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

Sie können die oben genannte E-Mail-Adresse in Ihrem Skript ändern, damit es Ihnen per E-Mail zugesandt wird. Die automatisch generierte Datei kann angezeigt werden.

Laden Sie „collectnetworkinfo.sh“ herunter

Skript zur Konvertierung von GROSSBUCHSTABEN in Kleinbuchstaben

Ein Skript, das GROSSBUCHSTABEN in Kleinbuchstaben umwandelt und die Ausgabe in eine Textdatei „small.txt“ umleitet, die nach Bedarf geändert werden kann.

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

Dieses obige Skript kann die Groß- und Kleinschreibung einer Datei beliebiger Länge mit einem einzigen Klick von Großbuchstaben in Kleinbuchstaben und umgekehrt umwandeln, wenn nötig, mit nur geringen Änderungen.

Beispielausgabe
[root@tecmint /]# ./convertlowercase.sh  
Enter File Name : a.txt 

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

Ausgabe der neuen Datei (small.txt):

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

Laden Sie „convertlowercase.sh“ herunter

Einfaches Rechnerprogramm

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

Laden Sie simplecalc.sh herunter

Haben Sie gesehen, wie einfach es war, auf so einfache Weise ein leistungsstarkes Programm für Berechnungen zu erstellen? Es ist nicht das Ende. Wir werden mindestens einen weiteren Artikel dieser Reihe verfassen, der eine umfassende Perspektive aus der Sicht der Verwaltung abdeckt.

Das ist alles für den Moment. Als Leser und bester Kritiker vergessen Sie nicht, uns mitzuteilen, wie sehr und was Ihnen an diesem Artikel gefallen hat und was Sie im zukünftigen Artikel sehen möchten. Jede Frage ist als Kommentar herzlich willkommen. Bis dahin bleiben Sie gesund, sicher und fit. Gefällt mir und Teilt uns und hilf uns, uns zu verbreiten.