Das Skript
In der Computertechnik versteht man unter einem Skript eine Liste von Befehlen, die von einem Interpreter kompiliert und ausgeführt werden. Der Quelltext wird also nicht in einem eigenen Schritt übersetzt, sodass bei Bedarf der Quelltext direkt ausgeliefert werden muss. Im Allgemeinen dienen Skripte zur Automatisierung von Aufgaben, werden in Textdateien geschrieben und können so mit den meisten Texteditoren geöffnet und bearbeitet werden. In den Windows Betriebssystemen spricht man häufig von Makros.
Bash
Bourne-again-Shell kurz Bash ist eine Shell, die heute auf den meisten Unix-Systemen standardmäßig installiert ist. Die erste Version von Bash wurde 1987 mit C geschrieben und ist eine Weiterentwicklung der Bourne Shell, weshalb sie auch zu dieser kompatibel ist. Des Weiteren beherrscht sie auch Funktionen anderer Shells, beispielsweise der Korn Shell oder der C-Shell.
In Bash gibt es zahlreiche eingebaute Befehle unter anderem: cd, chmod, date, kill, import etc.
Daneben gibt es noch reservierte Wörter, die für die Bash-Programmierung nötig sind. Dies sind Schlüsselwörter wie: if, case, function, for etc.
In Bash gibt es die drei sogenannten Standarddateien. Diese sind keine richtigen Dateien sondern Dateideskriptoren (oder Handle; verwaltet Systemressourcen z.B. Bildschirmobjekte), werden aber von der Shell als Dateien behandelt. Diese sind Standardeingabe, Standardausgabe und Standardfehler. Ein in Bash ausgeführtes Programm liest von der Standardeingabe, was im Normalfall der Tastatur entspricht. Das Ergebnis wird an die Standardausgabe weitergegeben, dies ist z.B. der Bildschirm. Fehlermeldungen werden auch am Bildschirm, aber über den Standardfehler ausgegeben.
Subshell
Dies ist ein Shellprozess, der von der Shell erzeugt wurde. Wenn also ein Programm aus der Shell heraus gestartet wird, muss die Shell zuerst einen Shellprozess erzeugen. Wird ein Programm aus der grafischen Oberfläche gestartet, wird kein Shellprozess gestartet.
Syntax
Am Anfang jedes Bash-Skripts muss folgende Zeile stehen:
#!/bin/bash
Das "#!" besagt, welcher Interpreter genutzt werden soll. Der Rest ist der Pfad, wo sich der Interpreter befindet. "/bin/bash" ist der Standardpfad für Bash.
Grundsätzlich sind Zeilen, die mit "#" beginnen, immer als Kommentarzeilen zu verstehen. Die erste Zeile mit "#!" ist jedoch eine Ausnahme.
Nach dieser ersten Zeile kann nun mit der eigentlichen Programmierung begonnen werden.
Auch in Bash gibt es Variablen, die allerdings keine bestimmten Datentypen sind, sondern einfach den Wert speichern, der ihnen zugeordnet wird.
Beispiel:
neueVariable="Dies ist eine Variable."
Um den Wert, der in der Variable gespeichert ist, anzuzeigen, muss man mit dem Befehl "echo" arbeiten.
echo $neueVariable
Ausgabe:
Dies ist eine Variable.
Das "$"-Zeichen wird dazu verwendet, dem Interpreter zu sagen, dass es sich um eine Variable handelt. Würde man dieses Zeichen weglassen, würde in der Ausgabe "neueVariable" stehen anstelle des in ihr gespeicherten Wertes.
Wenn, als Beispiel, in der Variable eine Zahl steht, könnte man mit dieser Variable eine Rechnung durchführen.
Beispiel
Zahl1=5
Zahl2=7
Ergebnis=$(( $Zahl1 + $Zahl2 ))
echo "Das Ergebnis ist:"
echo $Ergebnis
Ausgabe:
Das Ergebnis ist:
12
Neben den Variablen gibt es auch noch Parameter. Mit diesen kann man vor dem Start beliebige Werte mitgeben. Die Variable $1 enthält den ersten Parameter, der mitgegeben wird. $2 den zweiten, $3 den dritten usw. $0 enthält immer den Namen des Skriptes und $# merkt sich die Anzahl an mitgegebenen Parametern.
Am Anfang jedes Bash-Skripts muss folgende Zeile stehen:
#!/bin/bash
Das "#!" besagt, welcher Interpreter genutzt werden soll. Der Rest ist der Pfad, wo sich der Interpreter befindet. "/bin/bash" ist der Standardpfad für Bash.
Grundsätzlich sind Zeilen, die mit "#" beginnen, immer als Kommentarzeilen zu verstehen. Die erste Zeile mit "#!" ist jedoch eine Ausnahme.
Nach dieser ersten Zeile kann nun mit der eigentlichen Programmierung begonnen werden.
Auch in Bash gibt es Variablen, die allerdings keine bestimmten Datentypen sind, sondern einfach den Wert speichern, der ihnen zugeordnet wird.
Beispiel:
neueVariable="Dies ist eine Variable."
Um den Wert, der in der Variable gespeichert ist, anzuzeigen, muss man mit dem Befehl "echo" arbeiten.
echo $neueVariable
Ausgabe:
Dies ist eine Variable.
Das "$"-Zeichen wird dazu verwendet, dem Interpreter zu sagen, dass es sich um eine Variable handelt. Würde man dieses Zeichen weglassen, würde in der Ausgabe "neueVariable" stehen anstelle des in ihr gespeicherten Wertes.
Wenn, als Beispiel, in der Variable eine Zahl steht, könnte man mit dieser Variable eine Rechnung durchführen.
Beispiel
Zahl1=5
Zahl2=7
Ergebnis=$(( $Zahl1 + $Zahl2 ))
echo "Das Ergebnis ist:"
echo $Ergebnis
Ausgabe:
Das Ergebnis ist:
12
Neben den Variablen gibt es auch noch Parameter. Mit diesen kann man vor dem Start beliebige Werte mitgeben. Die Variable $1 enthält den ersten Parameter, der mitgegeben wird. $2 den zweiten, $3 den dritten usw. $0 enthält immer den Namen des Skriptes und $# merkt sich die Anzahl an mitgegebenen Parametern.
Die Bash-Programmierung unterscheidet sich zwar von "normalen" Programmiersprachen, hat jedoch oft ähnliche Befehle.
Beispiel (if/else):
if [ Bedingung ] ; then
Wird ausgeführt, falls die Bedingung wahr ist.
else
Wird ausgeführt, falls die Bedingung falsch ist.
fi
Beispiel eines "Hello World" Skripts:
#!/bin/bash
STRING="Hello World"
echo $STRING
Ausgabe:
Hello World
Beispiel eines Skripts zur Suche nach dem grössten gemeinsamen Teiler:
#!/bin/bash
Zahl1=$1
Zahl2=$2
if [ $Zahl1 -eq 0 ]; then
echo "Der grösste gemeinsame Teiler ist:"
echo $Zahl2
else
while [ $Zahl2 -ne 0 ];
do
if [ $Zahl1 -gt $Zahl2 ]; then
Zahl1=$(( $Zahl1 - $Zahl2 ))
else
Zahl2=$(( $Zahl2 - $Zahl1 ))
fi
done
echo "Der grösste gemeinsame Teiler ist:"
echo $Zahl1
fi
-eq bedeutet gleich (equal)
-ne bedeutet nicht gleich (not equal)
-gt bedeutet grösser als (greater than)
Keine Kommentare:
Kommentar veröffentlichen