In (t) CSH, set
verwendet wird, um eine Variable zu definieren; set foo = bar
weist der Variablen foo
den Wert bar
zu (wie in Bourne-Shell-Skripten foo=bar
).
In jedem Fall von tcsh(1)
:
Argument list processing
If the first argument (argument 0) to the shell is `-' then it is a
login shell. A login shell can be also specified by invoking the shell
with the -l flag as the only argument.
The rest of the flag arguments are interpreted as follows:
[...]
-e The shell exits if any invoked command terminates abnormally or
yields a non-zero exit status.
So müssen Sie tcsh
mit der -e
Flagge aufzurufen. Sagen wir es testen:
% cat test.csh
true
false
echo ":-)"
% tcsh test.csh
:-)
% tcsh -e test.csh
Exit 1
Es gibt keine Möglichkeit, dies zur Laufzeit festgelegt, wie mit sh
‚s set -e
, aber man kann es auf die Hash-Bang hinzufügen:
#!/bin/tcsh -fe
false
so wird es automatisch hinzugefügt, wenn Sie laufen ./test.csh
, aber das wird nicht es hinzufügen, wenn Sie csh test.csh
geben, so meine Empfehlung so etwas wie ein start.sh
zu verwenden ist, die das csh
Skript aufrufen wird:
#!/bin/sh
tcsh -ef realscript.csh
Haben Sie es versucht? Sonst hast du 'man tcsh' überprüft? Viel Glück. – shellter
Wenn ich set -e wie in der Shell verwende, habe ich diesen Fehler: set: Variablenname muss mit einem Buchstaben beginnen. – ARM
Wenn ich auf die man-Seite schaue, denke ich, dass Sie sie wie '#!/Bin/tcsh -e ...' verwenden müssen (natürlich am Anfang der Datei). Viel Glück. – shellter