Möglichkeiten ein Shellskript aufzurufen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 50: Zeile 50:
 
* Beobachten und notieren Sie, welche Unterschiede Sie feststellen.
 
* Beobachten und notieren Sie, welche Unterschiede Sie feststellen.
  
== Aufgabe 3 – Auswertung ==
+
== Aufgabe – Auswertung ==
 
* Beantworten Sie die folgenden Fragen:
 
* Beantworten Sie die folgenden Fragen:
 
** Welche Varianten starten eine neue Subshell?
 
** Welche Varianten starten eine neue Subshell?

Version vom 17. Oktober 2025, 13:52 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

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?