6.7 Autoload (Korn-Shell only)
In der Korn-Shell (in der Z-Shell übrigens auch) steht Ihnen eine Möglichkeit zur Verfügung, aus jeder Funktion, die Sie erstellt haben, eine Datei zu erstellen, ohne dass diese Datei ausführbar sein muss. Wo ist hier der Vorteil gegenüber dem Starten einer Funktion mit dem Punkteoperator? Vorwiegend geht es hier um die Geschwindigkeit. Bisher konnten Sie Funktionsbibliotheken nur komplett einlesen – auch wenn Sie aus einer Bibliothek nur eine Funktion benötigten. Mit dem Autoload-Mechanismus können Sie wirklich nur diese eine Funktion laden, egal, ob sich Hunderte anderer Funktionen in der Datei aufhalten.
Hierzu müssen Sie lediglich die Variable FPATH auf das oder die Verzeichnisse lenken, in denen die Funktionsdateien enthalten sind. Anschließend müssen Sie FPATH exportieren.
FPATH="$FPATH:/pfad/zur/funktionsdatei"
export FPATH
Als Beispiel verwenden wir einfach folgende Datei mit einigen Funktionen:
# Name: funktionen
afunction1() {
echo "Ich bin eine Funktion"
}
afunction2() {
echo "Ich bin auch eine Funktion"
}
Diese Datei müssen Sie nun der Variablen FPATH bekannt machen und exportieren:
you@host > FPATH=$HOME/funktionen
you@host > export FPATH
Jetzt müssen Sie diesen Dateinamen nur noch mit
autoload funktionen
bekannt geben. Nun stehen Ihnen nach einmaligem Aufruf des Namens der Funktionen alle Funktionen zur Verfügung. Verwenden Sie beim Schreiben nur den Funktionsrumpf allein, dann haben Sie gegenüber dem Schreiben von Funktionen den Vorteil, dass diese sofort ausgeführt werden können. autoload-Funktionen müssen nämlich zunächst ein Mal aufgerufen werden, damit ihr Rumpf bekannt ist.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.
|