Funktionen – Source-Operator
- Der Source-Operator (auch . genannt) erlaubt es, den Inhalt eines Skripts oder einer Funktion in die aktuelle Shell zu laden, ohne einen neuen Subprozess zu starten.*
- Damit bleiben alle Variablen, Funktionen und Einstellungen im aktuellen Shell-Kontext erhalten.*
Grundprinzip
- Mit source datei oder . datei wird die angegebene Datei zeilenweise von der aktuellen Shell ausgeführt.
- Keine neue Subshell wird gestartet.
- Änderungen an Variablen oder Funktionen bleiben nach dem Laden bestehen.
Beispiel – Source eines Skripts
#!/bin/bash
# Datei: vars.sh
greet() {
echo "Name: $1"
echo "Alter: $2"
}
- Dieses Skript kann von einem anderen Skript geladen werden:*
#!/bin/bash
# Datei: main.sh
source ./vars.sh
# oder kurz: . ./vars.sh
greet Klaus 30
Ausgabe:
Name: Klaus
Alter: 30
Hinweise
- Mit source werden alle Variablen und Funktionen direkt in die aktuelle Shell übernommen.
- Unterschiede zu normalem Aufruf (./skript):
- ./skript → neue Subshell, Variablen/Funktionen gehen danach verloren
- source → aktueller Shell-Kontext wird erweitert
- Wird häufig genutzt, um Konfigurationen, Funktionen oder Umgebungsvariablen in Skripten verfügbar zu machen.
Aufgaben
- Erstellen Sie ein Skript config.sh mit zwei Variablen SERVER und PORT.
- Schreiben Sie ein weiteres Skript, das config.sh mit source lädt und die Werte ausgibt.
- Fügen Sie eine Funktion in config.sh hinzu, rufen Sie sie nach dem Laden auf und prüfen Sie, ob sie im aktuellen Shell-Kontext verfügbar ist.