olarak (t), CSH, set
bir değişken tanımlamak için kullanılır; set foo = bar
bar
değerini foo
değişkenine atayacaktır (foo=bar
Bourne kabuk betiklerinde olduğu gibi). tcsh(1)
herhangi bir durumda
:
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.
Yani
-e
bayrağıyla
tcsh
çağırmak gerekir.
% cat test.csh
true
false
echo ":-)"
% tcsh test.csh
:-)
% tcsh -e test.csh
Exit 1
sh
'ın set -e
olduğu gibi, zamanında bu ayarlamak için bir yolu yoktur, ancak hashbang ekleyebilirsiniz: Bunu test edelim
#!/bin/tcsh -fe
false
yüzden otomatik olarak ekleniyor Eğer ./test.csh
çalıştırmak, ancak, csh test.csh
yazarken benim önerim csh
senaryoyu çağıracağı bir start.sh
gibi bir şey kullanmaktır yüzden bu eklemek olmaz:
#!/bin/sh
tcsh -ef realscript.csh
Denediniz mi? Else 'tcsh' kontrol ettin mi? İyi şanslar. – shellter
Set -e'yi kabukta olduğu gibi kullandığımda, bu hatayı aldım: set: Değişken adı bir harfle başlamalıdır. – ARM
Man sayfasına baktığımda, bence '#!/Bin/tcsh -e ... '(tablonun en üstünde) gibi kullanmanız gerektiğini düşünüyorum. İyi şanslar. – shellter