Den Wert einer Variablen erhält man, indem man ein Dollar-Zeichen
gefolgt vom Namen der gewünschten Variablen
schreibt: z.B. wird echo $gid ersetzt zu echo 20001,
da die Variable "gid" den Wert "20001" enthält (meistens).
Man kann Variablen an jeder Stelle einer Kommandozeile
verwenden, nur innerhalb von Einfachhochkommas oder wenn das
Dollarzeichen von einem Backslash gefluchtet wird (\$) wird nicht
ersetzt (z.B. gibt echo '$gid' den String $gid
aus). Innerhalb von Doppelhokommas ( " ) wird
jedoch ersetzt. (Siehe auch Quoting)
Definiert wird eine
Variable per set var=value oder einfach set var,
wenn man ihr einen Null-String zuweisen möchte. Mit unset var
kann man eine Variable wieder entfernen. set ohne Parameter
listet alle definierten Variablen. Für Environment-Variable setzt man
hinter jeden Kommandonamen ein env, siehe unten bei Syntax.
So kann man z.B. durch Entfernen der Variablen ignoreeof einstellen, daß die Shell nun doch durch Drücken von CONTROL-D verlassen werden kann (nicht empfehlenswert), was bei gesetzter Variable nur zu einer Fehlermeldung führt.
Eine Liste aller Shell-Steuerungs-Variablen ist im csh-Manual im Abschnitt Environment Variables and Predefined Shell Variables zu finden. Einige sind in einer Liste der wichtigsten Shell-Variable zusammengefaßt.
Man kann Shell-Variablen außerdem noch zur Tipperleichterung benutzen (kurzer Variablenname statt eines langen Strings), oder in Shell-Scripten, wo sie dieselbe Funktion übernehmen wie Variablen in Programmiersprachen.
set variable=valueDas zweite Beispiel definiert eine Liste, d.h. ein Array von Werten in einer Variablen. Die Variable $path ist z.B. so eine Liste. Mit Environment-Variablen funktionieren keine Listen! Dort schreibt man ersatzweise
echo $variableset variable=(value1 value2 value3 ... )
echo $variable[index]
value1:value2 ohne Klammern.
Dieser Mechanismus wird dazu benutzt, den gestarteten Programmen Informationen über ihre Umwelt zukommen zu lassen (deshalb Environment). So sagt die Variable TERM allen Programmen, was für ein Terminal benutzt wird. Die Bedeutung der Variablen ist ganz und gar von den gestarteten Programmen abhängig. Siehe auch Liste der wichtigsten Environment-Variablen.
Der leichteren Unterscheidung wegen schreibt man übrigens alle Shell-interne Variablen klein, Environment-Variable dagegen groß.
setenv variable value
variable=value export variable