12.6 Variablen 

Variablen werden in der C-Shell mit dem Befehl set erstellt und gesetzt. Verwendet werden sie, wie Sie es aus der Bourne-Shell kennen, über den Variablennamen mit vorangestelltem $-Zeichen, also etwa $variable.
% set Kater="Charlie" % echo $Kater Charlie % echo "Hallo $Kater" Hallo Charlie
Listing 12.6 Der Befehl set und die Benutzung von Variablen
Wie auch in der Bourne-Shell, so lassen sich Variablen in der C-Shell nicht immer ohne Probleme auf die gezeigte Weise in Text einbetten. Manchmal muss der Variablenname durch ein Sonderzeichen vom auszugebenden Text getrennt werden, damit die Shell den Variablennamen korrekt interpretieren kann. Entsprechend ist es ein guter Programmierstil, Variablen immer in geschweifte Klammern einzubetten:
% echo "Hallo ${Kater}" Hallo Charlie % echo "Hallo, ${Kater}. Wie geht es dir?" Hallo, Charlie. Wie geht es dir? % echo "Hallo, $Katerlala." Katerlala: Undefined variable. % echo "Hallo, ${Kater}lala." Hallo, Charlie
Listing 12.7 Variablen in Text einbetten, um Probleme zu vermeiden
12.6.1 Arrays 

In der C-Shell sind auch Variablen mit mehreren Elementen definierbar. Auch zur Initialisierung solcher Variablen kommt wieder das set-Kommando zum Einsatz. Die Verwendung von Arrays erfolgt recht ähnlich zur Bourne-Shell. Wichtig ist, dass das erste Element des Arrays nicht die Nummer 0, sondern die Nummer 1 hat.
% set katzen = (Mauzi Charlie) % echo $katzen Mauzi Charlie % echo $katzen[1] Mauzi % echo $katzen[2] Charlie % echo $katzen[3] katzen: Subscript out of range.
Listing 12.8 Arrays erstellen und verwenden
Arrays können geleert werden, indem ihre Elemente gelöscht werden. Dazu wird set mit leeren Klammern (also elementlos) aufgerufen.
% set katzen = () % echo $katzen[1] katzen: Subscript out of range.
Listing 12.9 Array leeren
12.6.2 Variablen löschen 

Mit dem Befehl unset <variable> lassen sich Variablen löschen.
% unset katzen % echo $katzen[1] katzen: Undefined variable. % echo $katzen katzen: Undefined variable.
Listing 12.10 Variablen löschen
12.6.3 Auflisten existierender Variablen 

Wird set ohne Parameter aufgerufen, erhalten Sie eine Liste derzeitig gesetzter Variablen. Außerdem erfahren Sie die Werte dieser Variablen.
% set argv () cwd /home/test entry service:/etc/timidity:/bin/false home /home/test i 2748 machine testhost path (/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin) prompt % prompt2 ? shell /bin/csh status 0 term xterm user test
Listing 12.11 Welche Variablen existieren?
12.6.4 Rechnen mit Variablen 

Das Rechnen mit Variablen ist in der C-Shell verhältnismäßig praktisch möglich. Um eine Variable als Integer-Variable zu deklarieren, verwenden Sie anstelle von set den @-Operator. Auf die mit @ deklarierte Variable können Sie weiterhin wie gewohnt zugreifen, doch zur Veränderung des Wertes der Variablen muss stattdessen @ Rechenoperation geschrieben werden.
% @ i = 0 % echo $i 0 % @ i ++ % echo $i 1 % @ i = $i + 99 % echo $i 100
Listing 12.12 Integer-Variablen in der C-Shell