Gültigkeit von Kommandos und Variablen
Jeder Kommandoaufruf und somit auch der Aufruf einer Befehlsdatei (Shellskript)
hat einen neuen Prozeß zur Folge. Wie wir wissen, wird zwar das Environment des Elternprozesses "nach unten" weitergereicht, jedoch gibt es keine umgekehrten Weg. Auch der Effekt der Kommandos (z. B. Verzeichniswechsel) ist nur innerhalb des Kindprozesses gültig.Im Elternprozeß bleibt alles beim alten. Das gilt natürlichauch für Zuweisungen an Variablen. Die Kommunikation mit dem Elternprozeß kann aber z. B. mit Dateien erfolgen. Bei kleinen Dateien spielt sich fast immer alles im Cache, also im Arbeitsspeicher ab und ist somit nicht so ineffizient, wie es zunächst den Anschein
hat. Außerdem liefert jedes Programm einen Rückgabewert,
der vom übergeordneten Prozeß ausgewertet werden kann.
- 0: O. K.
- > 0: Fehlerstatus
Es gibt außerdem ein Kommando, das ein Shell-Skript in der aktuellen
Shell und nicht in einer Subshell ausführt:
. (Dot) Skript ausführen
Das Dot-Kommando erlaubt die Ausführung eines Skripts in der aktuellen
Shell-Umgebung, z. B. das Setzen von Variablen usw.
Damit die Variable auch in Subshells (d. h. beim Aufruf von Skripts auch wirksam
wird, muß sie exportiert werden:
export PATH
Alle exportierten Variablen bilden das Environment für die Subshells.
|