Variablen editieren (2)
Funktionen: Zur Unterscheidung von Variablen wird vor jedem
Funktionsnamen eine der Optionen -f , -F oder -p
angegeben. Die Funktion braucht noch nicht zu existieren;
ggf. wird eine leere Funktion generiert.
Die Optionen entsprechen verschiedenen Bearbeitungsmodi:
-f name : Rein temporäres Ändern. Sinnvoll, um auf die
Schnelle kleine Funktionen zu erzeugen und zu testen, aber nur unter der
bash . Diese kann eine intern gespeicherte Funktion als Text
reproduzieren, sodass zum Editieren eine temporäre Hilfsdatei ausreicht.
Der Text unterliegt einer bash-eigenen Formatierung, die man nicht
unbedingt schön finden muss. Die Funktionsdefinition steht in derselben
Datei wie eventuelle Variablenbesetzungen.
Im Gegensatz zur bash kann die Kornshell den Text einer Funktion
nur ausgeben, wenn die zugehörige Quelldatei existiert. Ist die Datei nicht
mehr verfügbar, lässt sich die Funktion zwar noch aufrufen, aber nicht mehr
editieren. Die Verwendung einer temporären Datei hat also bei der
ksh keinen Sinn. Deshalb wirkt bei der ksh-Version von vared die
Option -f wie -F (s.u.).
-F name : Editieren mithilfe einer permanenten Datei. Sinnvoll,
wenn man eine Funktion in mehreren Sitzungen bearbeiten will. Statt in
einer temporären Datei wird der Text in einem speziellen Verzeichnis unter
dem Namen der Funktion abgelegt. Das Verzeichnis lässt sich durch Besetzen
der Variablen BASH_VARED_FDIR bzw. KSH_VARED_FDIR
vorgeben, voreingestellt sind ~/bash-funcs bzw.
~/ksh-funcs . Die Quelle steht auch nach Ende der Shell noch zur Verfügung,
nicht mehr benötigte Dateien müssen vom Benutzer gelöscht werden. Falls
man eine anderswo definierte Funktion editiert, gibt es anschließend zwei
Quellen - die Originalversion und die von vared erzeugte. Wurde
die Originalversion beim Durchlaufen einer profile-Datei definiert,
ist sie zwar nach dem
Einloggen zunächst aktiv, aber der nächste vared -Aufruf aktiviert die von
vared verwaltete Version. In diesem Modus kann man eine Funktion
schrittweise ändern, ohne die Originalversion anzurühren.
Erst nach ausführlichem Testen überschreibt man dann die alte Version mit der neuen.
-p name oder -p pfad : Direktes Editieren einer Quelle.
Ist der Parameter ein einfacher Name, wird die Quelle über den
Suchpfad FPATH gesucht. Handelt es sich um einen Pfad (d.h. mindestens
ein / ist enthalten), bezeichnet er die Quelldatei. Vorsicht ist
geboten, denn im Gegensatz zu (2)
wird hier die "offizielle" Version der Funktion verändert.
Bash-Version
Ksh-Version
|