LPIC102/105.2 Einfache Skripte anpassen oder schreiben: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 47: | Zeile 47: | ||
# chmod 700 addi | # chmod 700 addi | ||
Dann muss die ''Shebangzeile'' in der Datei eingefügt werden. | Dann muss die ''Shebangzeile'' in der Datei eingefügt werden. Diese zeigt an, welche Umgebung das Skript benötigt. | ||
#/bin/bash | #/bin/bash | ||
Zeile 76: | Zeile 76: | ||
|} | |} | ||
*Selbst geschriebene Skripte sollten aus diesem Sinne in den Ordner ''/usr/local/bin'' gelegt werden. | |||
==Übergabevariablen und Rückgabewerte== | |||
Einige Variablen haben festgelegte Werte. Ein Beispiel: | |||
#!/bin/bash | |||
#Gibt Variablen aus | |||
echo Das script wurde mit $0 gestartet. | |||
echo Sie haben $# Parameter übergeben. | |||
echo Der erste Übergabewert war $1. | |||
echo Der zweite Übergabewer war $2. | |||
Murks | |||
echo Der aktuelle Errorlevel ist $?. | |||
exit 0 | |||
Das script wurde mit /home/user/bin/varia gestartet. | |||
Sie haben 2 Parameter übergeben. | |||
Der erste Übergabewert war 59. | |||
Der zweite Übergabewer war 33. | |||
/home/user/bin/varia: Zeile 7: Murks: Kommando nicht gefunden. | |||
Der aktuelle Errorlevel ist 127. | |||
*Die Variable $0 enthält den Namen des | |||
Version vom 22. Juli 2019, 13:50 Uhr
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 $?"
|
Lange Kommandos, die sich über mehrere Zeilen verteilen, sollten mit einem Backslash \ aufgeteilt werden.
dd of=/dev/zero \ if=/.tmp \ bs=1M count=2000 stauts=progress
Ausführung eines Skripts
Ausführungsberechtigung
- Ein Shell-Skript kann nur dann ausgeführt werden, wenn die Datei auf "ausführbar" gesetzt wird.
- Mit ls -l kann man die Berechtigungen sehen
- Mit chmod kann man das Attribut für die Ausführbarkeit gesetzt werden.
# chmod a+x <Skriptdatei> // Alle können das Skript ausführen # chmod 700 <Skriptdatei> // Nur der Benutzer kann das Skript ausführen # chmod 4700 <Skriptdatei> // Normale Benutzer können es verwenden, wie der Besitzer des Skripts
Skript ausführen
Ein Beispielskript addi:
#Addiert zwei Variablen let summe=$1+$2 echo "Die Summe aus $1 und $2 ist $summe."
An die Bash, mitsamt den Parametern, übergeben:
bash /home/user/addi 2 3
Mithilfe des Kommandos source:
source /home/user/addi 5 9
Aus der Textdatei ein ausführbares Shell-Skript machen. Dafür sind zwei Schritte notwendig: Als erstes muss die Datei als "ausführbar" markiert werden.
# chmod 700 addi
Dann muss die Shebangzeile in der Datei eingefügt werden. Diese zeigt an, welche Umgebung das Skript benötigt.
#/bin/bash
Das Skript kann nun ausgeführt werden:
addi 4 4 Die Summe aus 4 und 4 ist 8.
Speicherort eines Skripts
Verzeichnis | Bedeutung |
---|---|
/bin | Hier kommen die Programme hin, die aus der Distribution kommen und von apt installiert worden sind. Programme, die von Benutzer genutzt werden können. |
/sbin | Hier kommen die Programme hin, die aus der Distribution kommen und von apt installiert worden sind. Programme, die nur root benutzen kann. |
/usr/bin | Ähnlich wie /bin |
/usr/sbin | Ähnlich wie /sbin |
/opt | Hier kommen die Programme hin, die von apt heruntergeladen und installiert worden sind, aber nicht von der Distribution kommen. |
/usr/local/bin | Hier kommen selbst kompilierte Programme hinein. |
/usr/local/sbin | Hier kommen selbst kompilierte Programme hinein, die nur root ausführen darf. |
- Selbst geschriebene Skripte sollten aus diesem Sinne in den Ordner /usr/local/bin gelegt werden.
Übergabevariablen und Rückgabewerte
Einige Variablen haben festgelegte Werte. Ein Beispiel:
#!/bin/bash #Gibt Variablen aus echo Das script wurde mit $0 gestartet. echo Sie haben $# Parameter übergeben. echo Der erste Übergabewert war $1. echo Der zweite Übergabewer war $2. Murks echo Der aktuelle Errorlevel ist $?. exit 0
Das script wurde mit /home/user/bin/varia gestartet. Sie haben 2 Parameter übergeben. Der erste Übergabewert war 59. Der zweite Übergabewer war 33. /home/user/bin/varia: Zeile 7: Murks: Kommando nicht gefunden. Der aktuelle Errorlevel ist 127.
- Die Variable $0 enthält den Namen des