HomeSoftwareSpieleMusikForum

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:
  1. -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.).

  2. -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.
  3. -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
up
Created 2011-08-11 by mopcoge