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.
Listing 12.6 Der Befehl set und die Benutzung von Variablen
% set Kater="Charlie"
% echo $Kater
Charlie
% echo "Hallo $Kater"
Hallo Charlie
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:
Listing 12.7 Variablen in Text einbetten, um Probleme zu vermeiden
% 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, Charlielala
12.6.1 Arrays
In der C-Shell sind auch Variablen mit mehreren Elementen definierbar. Zu ihrer Initialisierung kommt wieder das set-Kommando zum Einsatz. Die Verwendung von Arrays erfolgt recht ähnlich zur Bourne-Shell. Wichtig ist, dass das erste Element nicht die Nummer 0, sondern die Nummer 1 hat.
Listing 12.8 Arrays erstellen und verwenden
% set katzen = (Mauzi Charlie)
% echo $katzen
Mauzi Charlie
% echo $katzen[1]
Mauzi
% echo $katzen[2]
Charlie
% echo $katzen[3]
katzen: Subscript out of range.
Arrays können geleert werden, indem ihre Elemente gelöscht werden. Dazu wird set mit leeren Klammern (also elementlos) aufgerufen.
Listing 12.9 Array leeren
% set katzen = ()
% echo $katzen[1]
katzen: Subscript out of range.
12.6.2 Variablen löschen
Mit dem Befehl unset <variable> lassen sich Variablen löschen.
Listing 12.10 Variablen löschen
% unset katzen
% echo $katzen[1]
katzen: Undefined variable.
% echo $katzen
katzen: Undefined variable.
12.6.3 Auflisten existierender Variablen
Wird set ohne Parameter aufgerufen, erhalten Sie eine Liste derzeitig gesetzter Variablen und erfahren deren Werte.
Listing 12.11 Welche Variablen existieren?
% 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
12.6.4 Rechnen mit Variablen
Das Rechnen mit Variablen ist in der C-Shell verhältnismäßig praktisch realisiert. 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.
Listing 12.12 Integer-Variablen in der C-Shell
% @ i = 0
% echo $i
0
% @ i ++
% echo $i
1
% @ i = $i + 99
% echo $i
100
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.