Möglichkeiten ein Shellskript aufzurufen
Zur Navigation springen
Zur Suche springen
bash skript (r)
- Starten einer Subshell
- Lesen der Skriptdatei von der Subshell
- Kommandos werden nacheinander abgearbeitet
- Beenden der Subshell und Rückkehr zur aufrufenden Shell
(Die Shell, die das Skript abarbeitet, kennt den Namen des Shellskriptes)
bash < skript (r)
- Starten einer Subshell
- Lesen der Skriptdatei von der Subshell
- Kommandos werden nacheinander abgearbeitet
- Beenden der Subshell und Rückkehr zur aufrufenden Shell
(Die Shell, die das Skript abarbeitet, kennt den Namen des Shellskriptes nicht)
./skript (rx)
- Starten einer Subshell
- Lesen der Skriptdatei von der Subshell
- Kommandos werden nacheinander abgearbeitet
- Beenden der Subshell und Rückkehr zur aufrufenden Shell
(Die Shell, die das Skript abarbeitet, kennt den Namen des Shellskriptes; es muss zusätzlich das Ausführungsrecht gesetzt sein.)
exec ./skript (rx)
- Die Subshell ersetzt die aktuelle Shell (überlädt die aktuelle Shell)
- Lesen der Skriptdatei von der Subshell
- Kommandos werden nacheinander abgearbeitet
- Beenden der Subshell; danach ist der Prozess der aufrufenden Shell beendet.
source skript oder . skript (r)
- Lesen der Skriptdatei von der aktuellen Shell
- Der interaktive Modus der aktuellen Shell wird „unterbrochen“
- Kommandos werden nacheinander abgearbeitet
(Es wird kein neuer Prozess gestartet; Variablen haben in dieser Shell Gültigkeit)
Aufgaben
- Hinweis
- $0 enthält den Namen des aktuell ausgeführten Skripts oder Befehls.
- $$ enthält die Prozess-ID (PID) der Shell, in der das Skript läuft.
- Beide gehören zu den sogenannten Spezialvariablen, die in einem späteren Kapitel ausführlich behandelt werden.
Aufgabe – Skript erstellen
- Erstellen Sie ein einfaches Skript mit dem Namen skript, das folgende Befehle enthält:
- date
- hostname
- echo $0
- echo $$
Aufgabe 2 - Verschiedene Aufrufarten testen
- Führen Sie das Skript nacheinander auf die folgenden Arten aus:
- bash skript
- bash < skript
- ./skript
- exec ./skript
- source skript bzw. . skript
- Beobachten und notieren Sie, welche Unterschiede Sie feststellen.
Aufgabe – Auswertung
- Beantworten Sie die folgenden Fragen:
- Welche Varianten starten eine neue Subshell?
- Bei welchen Varianten bleibt die aktuelle Shell erhalten?
- Bei welchen Aufrufen kennt die Shell den Namen des Skripts ($0)?
- Bei welchen bleibt die Prozess-ID ($$) gleich?