Variablen editierenIm Gegensatz z.B. zurzsh existiert bei bash und
ksh kein internes Kommando zum interaktiven Editieren von Shellvariablen.
Um einen Variablenwert zu ändern, muss man hier eine komplette Zuweisung
name=wert ausführen, was bei längeren Werten
umständlich ist und leicht zu Fehlern führen kann. Die nachfolgend beschriebene
Funktion vared ermöglicht das einfache Ändern von Variablenwerten
mittels eines externen Editors. Das Verfahren ist simpel: Die aktuellen
Variablenwerte werden in Form von Zuweisungen in eine temporäre Datei
geschrieben, dann wird ein Editor mit dieser Datei gestartet. Der Benutzer
kann nun die Zuweisungen ändern (muss allerdings darauf achten, das
die Shell-Syntax erhalten bleibt). Danach wird die Datei in der aktuellen
Shell ausgeführt, um die Änderungen wirksam werden zu lassen, und
am Ende wieder gelöscht. Auf diese Weise lassen sich in einem
Arbeitsgang beliebig viele Variablen ändern, auch Arrayelemente und
komplette Arrays. Natürlich gelten die Änderungen nur bis zum Ende der
laufenden Shell; sollen sie dauerhaft erhalten bleiben, müssen sie in einer
permanenten (z.B. profile -) Datei untergebracht werden.
Aufgerufen wird der Editor, mit dessen Pfad
die Variable Außer für Shellvariablen ist Wegen starker Differenzen zwischen den Shells, insbesondere bei den
Funktionen, gibt es getrennte Der Aufruf erfolgt in der Form vared -h vared varname -a arrayname arrayname[index] -f -F -p funcname
Arrays: Die Option typeset -a array=([0]='x' [1]='y' [2]='z') -a hängt die Ausgabe davon ab, ob in dem Array alle Indizes
lückenlos vorhanden sind. Wenn ja, wird es in der einfachen sequentiellen Form
dargestellt, z.B.
typeset -a array=( 'x' 'y' 'z' ) |