LPIC102/105.2 Einfache Skripte anpassen oder schreiben
Mithilfe von Skripten können alltägliche Aufgaben völlig automatisch ablaufen lassen. In Skripten müssen neben Shell-Kommandos auch Befehle fürs Programmieren angewendet werden, vornehmlich Schleifen und Fallunterscheidungen.
Kommandos verketten
Es gibt drei Zeichen, um Kommandos nacheinander auszuführen.
Zeichen | Bedeutung | Beispiel |
---|---|---|
; | Kommandos werden nacheinander durchgeführt | echo "Dies ist eine Liste";ls -l
|
&& | Kommando 2 wird dann ausgeführt, wenn das erste Kommando erfolgreich war. | ls && echo "Vorgang erfolgreich"
|
|| | Kommando 2 wird dann ausgeführt, wenn das erste Kommando erfolglos war. | ls /etz || echo "Fehlernummer $?"
|
Für die Benennung des Skriptes, ist es sehr wichtig keine Sonderzeichen einzufügen, sowie vorhandene Befehle zu benutzen. Allgemein werden Skripte meist in Textdateien geschrieben.
Wichtige Inhalte in einem Skript
- Standard-Syntax verwenden (sh)
- Kommandosubstitutionen verwenden
- verkettete Kommandos ausführen
- es werden mehrere Befehle in einer einzigen Befehlszeile ausgeführt
- werden mit einem Semikolon (;) getrennt
- Beispiel: # df -h;free -m
- -> Zunächst zeigt es die Festplattenbelegung, anschliessend die Speicherverwendung
Position eines Skriptes
Falls man ein Skript öfter benötigt, wäre es sinnvoll ein Verzeichnis auszuwählen, dass auf die PATH-Variable zeigt.
- /usr/bin ist gut geeignet für systemweite und für jeden zugänglich
- /usr/sbin ist gut geeignet für durchgeführte administrative Eingriffe oder auch nicht für normale Benutzer anwendbar sein sollen
Ausführung eines Skriptes
Es gibt drei Methoden ein Skript auszuführen:
# Addiert zwei Werte let summe=$1+$2 echo "Die Summe aus $1 und $2 ist $summe."
Zum einen mit "add":
/bin/bash /storage/scriptdemo/add 5 6 Die Summe aus 5 und 6 ist 11.
Zum anderen mit "source":
source /storage/scriptdemo/add 5 6 Die Summe aus 5 und 6 ist 11.
Zum anderen musst du zunächst die Datei ausführbar machen:
/storage/scriptdemo # ls -l ... -rw-r--r-- 1 root root 92 Aug 24 16:52 add ...
-rw-r-r-- das sind Standardberechtigungen für eine neue Datei. Bedeutet mit "chmod" wird das Attribut für die Ausführbarkeit hinzugefügt:
/storage/scriptdemo # chmod a+x add /storage/scriptdemo # ls -l ... -rwxr-xr-x 1 root root 92 Aug 24 16:52 add ...
Nun wird die Shebangzeile eingefügt:
#!/bin/bash # Addiert zwei Werte let summe=$1+$2 echo "Die Summe aus $1 und $2 ist $summe."
Das Zeichen "#!" ist in dieser Situation kein Kommentarzeichen, sondern zeigt die Ausführbarkeit der Datei an.
Wichtige Dateien, Verzeichnisse und Anwendungen
Zeichen | |
---|---|
for | - |
&& | bei diesem Zeichen wird der zweite Befehl nur ausgeführt, wenn der erste erfolgreich war |
|| | bei diesem Zeichen wird der zweite Befehl nur ausgeführt, wenn der erste fehlgeschlagen ist |
while | - |
test | - |
read | - |
if | - |
seq | - |
exec | Erklärung im unteren Teil des Artikels. (Sonstiges) |
Übergabevariablen und Rückgabewerte
Grundrechenarten
Es gibt vier verschiedene Grundrechenarten, mit denen man im Skripten arbeiten und rechnen kann.
clear; echo -e "\nGeben Sie jetzt den ersten Wert ein " read a clear; echo -e "\nGeben Sie jetzt den zweiten Wert ein " read
Damit wurde ein Wert für die Varibale "a" und "b" gesetzt.
- [a]ddieren
if [$operator=a]; then let c=a+b clear; echo $a + $b = $c
- [s]ubtrahieren
elif [ $operator=s]; then let c=a-b clear; echo $a – $b = $c
- [m]ultiplizieren
elif [ $operator=m]; then let c=a*b clear; echo $a * $b = $c
- [d]ividieren
elif [ $operator=d]; then let c=a/b clear; echo $a / $b = $c
Sonstiges
Mit Exec kann man ein externes Programm oder ein anderes Skript aufrufen, dabei wird der laufenden Prozess / das laufende Skript automatisch beendet und ersetzt.