|
|
C-Shell (csh)
Die C-Shell ist vor allem für Programmierer entwickelt worden. Ihre
Skriptsprache unterscheidet sich
erheblich von anderen Shells und ähnelt der Sprache C.
Die Leistungsfähigkeit der Skriptsprache ist heutzutage nicht mehr
so relevant, da man Perl oder Tcl/Tk heranzieht,
wenn man eine leistungsstärkere Skriptsprache als die der Shell
benötigt.
Unabhängig davon hat die C-Shell immer noch ihre Freunde. Insbesondere die
modernere Variante Die Startdatei der C-Shell heißt .cshrc. Statt der Datei .profile wird bei einer Login Shell die Datei .login gestartet. Neu gegenüber der Bourne Shell ist, dass es auch eine Datei gibt, die beim Ausloggen gestartet wird. Sie heißt konsequenterweise .logout. Durch ESC versucht die C-Shell den angefangenen Dateinamen anhand der im Verzeichnis existierenden Dateinamen automatisch zu vervollständigen.
Die C-Shell unterscheidet besonders genau zwischen Shellvariablen
und Umgebungsvariablen. Letztere werden mit dem Befehl
setenv VARIABLE wert
Dagegen werden die lokalen Shellvariablen mit
gaston> setenv huhu 3 gaston> echo $huhu 3 gaston> set huhu=5 gaston> echo $huhu 5 gaston> printenv huhu 3 gaston> ps Beim Umleiten des Fehlerausgabekanals (stderr) in eine Datei muss bei der C-Shell auch der normale Ausgabekanal (stdout) in diese Datei umgeleitet werden. Das Zeichen für die gemeinsame Umleitung ist eine Kombination aus Größerzeichen und kaufmännischem Und (>&).
cc -o moin moin.c >& outerr Dieser Mechanismus gilt ebenso bei einer Pipe. Wird dem senkrechten Strich ein & angehängt, geht auch stderr durch die Pipe. Anders ausgedrückt geht die stderr bei der C-Shell entweder auf den Bildschirm oder folgt der stdout durch Angabe des kaufmännischen Und (&) hinter dem Umleitungszeichen.
HistoryDie C-Shell verwendet das Ausrufezeichen als Historyzeichen. Daneben werden auf den neueren Systemen normalerweise die Cursortasten unterstützt.
[C-Shell-History]L|L
Zeichen & bewirkt...
Teile des letzten Kommandos können ersetzt werden. Dazu folgendes Beispiel:
hpsrv 2: lx hel* lx: Command not found. hpsrv 3: ^lx^ls ls hel* hello.cpp hpsrv 4:
Das fehlerhafte lx wird durch das korrekte ls ausgetauscht. Nach Return wird
der korrigierte Befehl gestartet.
Im folgenden Beispiel wird noch einmal der Befehl geholt, der mit
hpsrv 4: !ls ls hel* hello.cpp hpsrv 5: echo !$ echo hel* hello.cpp hpsrv 6:
Statt der Umgebungsvariablen PS1 für den Prompt verwendet die C Shell die
Variable
set prompt="%!:" Dieser Befehl führt dazu, dass vor jedem Kommando eine Nummer steht, auf die man sich in der History beziehen kann.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|