| Shellfunktionen ladenHier zunächst einige Bemerkungen zu der Frage, wann, wo und wie Shellfunktionen geladen
    werden.Konfigurationsdateien: Prinzipiell können Shellfunktionen in einer der Konfigurationsdateien
    (.profile,.bashrcetc.) definiert werden, damit sie beim Start jeder
    Shell automatisch definiert sind. Es ist aber nicht sinnvoll, jedesmal
    alle vorhandenen Shellfunktionen zu laden. Einige (z.B.
    Bash-Vervollständigungen) braucht man nur im interaktiven Modus, andere
    nur in speziellen Scripten. Im nicht-interaktiven Betrieb sollte man
    gar keine Funktionen vordefinieren, sondern lieber eine saubere Umgebung
    anbieten und die benötigten Funktionen im Script mit. dateiodersource dateiladen. Dabei
    empfiehlt es sich, auf absoluten Pfade zu verzichten, die das Script stark an
    die Systemumgebung koppeln und seine Portabilität vermindern. Besser ist es,
    den Suchmechanismus der Shell zu verwenden. Suche: Wenn der bei sourceoder.angegebene
    Parameter einen einfachen Namen darstellt, durchsuchen die Shells (sowohlbashals auchksh) die in$PATHenthaltenen
    Verzeichnisse nach einer Datei dieses Namens. Die erste gefundene wird
    mitsourceausgeführt. Die Shell erwartet, dass darin 
    die aufgerufene Funktion definiert wird, andernfalls, versucht sie, die Datei als Script zu
    starten. Um den Suchmechanismus benutzen zu können, muss man also jede Funktion in
    einer gleichnamigen Datei abspeichern. In dieser Datei können auch noch andere Dinge
    definiert werden, etwa von der Hauptfunktion benötigte Hilfsfunktionen, aber man sollte 
    solche Seiteneffekte auf ein Minimum beschränken. Die Funktionsquellen
    fasst man sinnvollerweise in einigen wenigen Verzeichnissen 
    zusammen und fügt die Pfade dieser Verzeichnisse, wie üblich durch:getrennt, der VariablenPATHhinzu. Das z.B. kann in einer der
    profile-Dateien geschehen. Danach lassen sich Funktionen unter bloßer
    Angabe ihres Namens laden, d.h. mitsource funktionsname. Autoload: Die Kornshell verfügt zudem über einen Autoload-Mechanismus. Um ihn benutzen
    zu können, muss man zusätzlich zu den oben erwähnten Vorbereitungen
    die Variable FPATHmit einer Liste der
    Funktionsverzeichnisse besetzen.$FPATHist also eine Untermenge von$PATH. Wenn diese Bedingungen erfüllt sind, suchtkshjede aufgerufene Funktion, die noch nicht definiert ist, über$FPATHund lädt sie automatisch. Ein explizitessourceist nicht erforderlich. Das ist bequem, allerdings kann das Verfahren auch Nachteile haben. Ruft man 
    nämlich eine Funktion funcin einem Script nur in der Form$(func parameter...)auf, also nur in Subshells, wird sie bei jedem Aufruf gesucht und
    geladen, was ziemlich ineffektiv ist. 
     [1]
    In diesem Fall empfiehlt es sich, die Funktion am Beginn des Scripts explizit
    mitsource funczu laden; danach wird die Definition automatisch an
    Subshells weitergegeben. Achtung: Diese Anweisung darf wirklich nur einmal
    gegeben werden. Istfuncbereits definiert, bewirktsource funceinen Aufruf, nicht eine Neudefinition. Um sicher zu gehen, kann
    man statt des Namens den absoluten Pfad der Definitionsdatei angeben oder
    eine Bedingung vorschalten: typeset +f func >/dev/null || source func
 [1] Ab Version ksh93t gibt es eine effizientere Kommandoersetzung
 ${ kommando;}, die in der aktuellen Shell durchgeführt wird.
             |