我的Solaris 10 csh if语句实现有些混乱,或者我做不到正确的东西(当然,至少在我看来,第二个可能性很大),但是当我这样做时:
% if 1 then <enter>
%
=>什么都没发生
当我这样做时:
% if 0 then
?
=>这也是我在第一种情况下的期望。因为否则我将无法完成我的陈述的构建
if: improper then
我真的可以请您不要以“不要使用csh”作为开头。如果您确实喜欢它,可以以它结尾。在过去的几年中,到目前为止,csh为我的交互目的和我使用Bourne shell或bash编写的这个小脚本提供了很好的服务。
谢谢
首先,endif
如果没有要关闭的挂起的if ,请理解(在csh中)是no-op(无操作)。执行它没有任何效果。
% endif
%
因此,如果很清楚(因为值为1,这意味着对csh正确,与在c语言中完全一样),将执行if之后的命令,因此无需延迟执行它们,并且“允许”立即生效:
% if (1) then
% echo yes
yes
% echo no
no
% endif
但是,对于假值(0),将避免执行直到endif
执行a。
% if (0) then
? echo yes
? echo no
? endif
%
这就是csh的工作原理。
注:我没有得到if: improper then
有if 0 then
。也许错误在其他地方。
好吧……可能需要一些澄清。如果我写(<enter>
为了清楚起见,在添加之前的空格,请忽略它们):
% if 0 then <enter> !!!!!!!!!!!!!
? echo Hello there
? echo Yes
? endif
%
我没有错。
如果我写:
% if 0 then echo Hello there <enter> !!!!!!!!!!!!!
% if: Improper then.
我明白你的错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句