Möglichkeiten ein Shellskript aufzurufen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 33: | Zeile 33: | ||
= Aufgaben = | = 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 == | == Aufgabe – Skript erstellen == | ||
| Zeile 50: | Zeile 55: | ||
* Beobachten und notieren Sie, welche Unterschiede Sie feststellen. | * Beobachten und notieren Sie, welche Unterschiede Sie feststellen. | ||
| − | == Aufgabe | + | == Aufgabe – Auswertung == |
* Beantworten Sie die folgenden Fragen: | * Beantworten Sie die folgenden Fragen: | ||
** Welche Varianten starten eine neue Subshell? | ** Welche Varianten starten eine neue Subshell? | ||
Aktuelle Version vom 17. Oktober 2025, 13:53 Uhr
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?