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.
- Verstehen Sie grundlegende Tipps zur Linux-Shell-Skriptsprache – Teil I
- 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.
- „echo‘: Gibt alles aus, was in Anführungszeichen steht.
- „$‘: Ist eine Shell-Variable.
- „>>‘: 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.