Syntaktische Unterschiede: export vs setenv

Die Shells vom Typ csh versuchen, die gleiche Syntax wie die C-Sprache zu benutzen. Damit sollte der Gebrauch vereinfacht werden, da nur eine Syntax gelernt zu werden brauchte. Die Shells der sh Familie hingegen sind darin spezialisiert, Prozesse zu handhaben.

Auch wenn das Starten eines Programms in beiden Fällen gleich verläuft, so gibt es doch Unterschiede.

Als Beispiel nehmen wir an, dass ein Skript eine Umgebungsvariable verändern möchte, und zwar so, dass nachfolgende Befehle mit dieser veränderten Umgebung arbeiten:

images/shellvars.shell.1.eps0

Im Beispiel ist ersichtlich, dass bash als Argumente eine Liste an Befehlen erwartet, das [..] ist eine Kurzbeschreibung für den Aufruf der Funktion
\begin{code}test\end{code}
. Dem gegenübergestellt, ist in tcsh der Ausdruck eine arithmetische Aussage, dort wird, um einen Befehl auszuführen, dieser zwischen {..} gepackt werden müssen.

Wo bekommen wir unsere Hilfe her?
\begin{diapo}{Wo bekommen wir unsere Hilfe her?}
\begin{liste}
\item manual: man...
...umentation: /usr/doc/*
\item usenet: comp.unix.shell
\par
\end{liste}\end{diapo}

Es gibt sehr viele Unixbefehle. Viele dieser Befehle haben unzählige, mögliche Optionen. Aber keine Panik. Diese ganzen Befehle müssen nicht unbedingt im Kopf behalten werden. Wichtig ist nur zu wissen, welches Kommando was macht, die Einzelheiten zu diesem Kommando können leicht nachgelesen werden.