Linux Bash Scripting
Oft werden ja kleine Funktionen gebraucht mit welchen man irgend eine Aufgabe schnell lösen kann. Für solche “Kleinigkeiten” lohnt es sich meistens nicht ein extra Programm zu schreiben und eine schöne GUI zu designen. Oder wenn man jeden Tag bestimmte Daten von seinem Computer auf einen Server Backupen möchte kann man das auch einfach mit einem Script lösen welches man über einen Cronjob einmal am Tag ausführen lässt. In dem Artikel zeige ich euch wie ihr ganz einfach ein eigenes Bash Script in Linux schreiben könnt und wie ihr dieses startet.
Wenn ihr euer Script schreiben möchtet geht ihr zunächst mit der Konsole in den Ordner in welchem später euer Script liegen soll. Anschließend erstellt ihr eine neue Datei, diese Datei wird später euer Script sein. Gebt zum erstellen folgenden Befehl ein:
nano scriptname
Jetzt seht ihr den Editor Nano, mit diesem können wir jetzt anfangen unser Script zu schreiben. Zunächst einmal müssen wir einen Hinweis schreiben das es sich um ein Script handelt so das Linux später weiß was es machen muss. Dazu geben wir folgendes in die erste Zeile ein:
#!/bin/bash
Danach können wir auch schon mit unserem eigentlichen Script anfangen. Dazu überlegen wir uns erst kurz was für ein Script wir eigentlich schreiben möchten. Um etwas einfaches aus zu probieren schreiben wir nur ein Script bei dem der User 2 Zahlen eingibt und dann geschaut wird ob die Zahl 1 größer kleiner oder gleich groß wie Zahl 2 ist und das anschließend ausgibt.
Dafür müssen wir uns zunächst darum kümmern das die Zahlen welche der User eingibt eingelesen und in einer Variablen gespeichert werden. Das ganze realisierten wir mit folgenden 2 Befehlen:
zahl1=$1
zahl2=$2
Mit dem $1 lesen wir den ersten Aufrufparameter ein und speichern diese in der Variablen zahl1 und das gleiche machen wir auch mit der 2. Zahl.
Damit wir jetzt noch prüfen können ob die Zahl auch wirklich 2 Zahlen und nicht mehr oder Weniger eingegeben werden prüfen wir noch die Anzahl der eingegebenen Aufrufparameter.
anzahlparameter=$#
Das $# steht dafür das man die Anzahl der eingegeben Parameter ausließt, diese Zahl wird anschließend in der Variablen anzahlparameter gespeichert.
Jetzt müssen wir uns dem eigentlichen Script Teil widmen mit welchem wir die zwei Zahlen prüfen. Das ganze realisieren wir mit einer if Abfrage, das sieht dann wie folgt aus:
if [ $anzahlparameter -eq 2 ]
then
if [ $zahl1 -eq $zahl2 ]
then
echo "$zahl1 ist gleich $zahl2"
elif [ $zahl1 -gt $zahl2 ]
then
echo "$zahl1 ist größer als $zahl2"
elif [ $zahl1 -lt $zahl2 ]
then
echo "$zahl1 ist kleiner als $zahl2"
fi
else
then echo "Bitte geben Sie 2 Zahlen ein"
fi
Hier prüfen wir zunächst ob die Variable anzahlparameter gleich 2 ist, wenn das nicht der Fall ist wird “Bitte geben Sie 2 Zahlen ein” ausgegeben. Wenn die Variable aber 2 ist geht es weiter zu der nächsten If Abfrage. Dort wird geprüft ob zahl1 gleich zahl2 ist wenn das der Fall ist wird der Wert von Zahl 1 und 2 ausgegeben und geschrieben das diese gleich sind. Wenn das aber nicht zutrifft geht es zur nächsten If Abfrage in der geprüft wird ob Zahl 1 größer als Zahl 2 ist. Wenn das zutrifft werden wieder die Zahlen ausgegeben und der Text das die erste Zahl größer als die 2. Zahl ist. Wenn das auch nicht zu trifft kann es ja nur noch einen Zustand geben der geprüft werden muss und zwar ob die 1. Zahl kleiner als die 2. Zahl ist. Wenn dies dann Zutrifft wird wieder der Wert von Zahl 1 und Zahl 2 ausgegeben und das die 1. Zahl kleiner ist als die 2. Zahl. Danach muss man noch die If Abfrage beenden das macht man hier bei den Scripten mit dem Befehl fi.
Jetzt haben wir auch schon unser Script soweit fertig geschrieben und können dieses Speichern, das machen wir mit Strg + x in dem Editor Nano.
Nun müssen wir nur noch die Dateienberichtigungen von dem Script anpassen und zwar setzten wir diese auf 744, das machen wir mit folgendem Befehl:
chmod 744 scriptname
Jetzt haben wir auch schon alles so weit fertig das wir unser Script aufrufen könnten. Wenn wir dann unserem Script die Zahlen 2 und 4 übergeben möchten sieht das folgendermaßen aus:
./scriptname 2 4
Nachdem das Script diese Eingabe erhalten hat gibt es folgendes aus:
2 ist kleiner als 4
Diese Ausgabe ist richtig und wir sehen das unser Script funktioniert.
Ich hoffe das ihr mit Hilfe von diesem Artikel mal grob erkennen konntet wie man ein Bash Script unter Linux schreibt.