Sun*_*mar 2 linux if-statement csh
我使用Cshell,我在oneLine中编写if else语句.
如果语句执行成功,则else将进行无限循环,并且无法退回到promt.
有什么建议可以解决吗?
/home/sun_cdmasee>if ( 25 == 25 ) then ; echo "yes" ; else echo "no" ; endif
Run Code Online (Sandbox Code Playgroud)
是
其他?
其他?
其他?
小智 10
尽管已经很老了,还是回答这个问题,因为这是谷歌的第一个点击,如果有人来寻找它,他们很可能会来到这里。
手册可能会说这是不可能的,但不是使用单个 if,而是可以使用相反形式的 if 来实现相同的功能:
if ("a" =~ "b") echo "wrong"; if ("a" !~ "b") echo "right"
Run Code Online (Sandbox Code Playgroud)
同样可以应用于别名:
alias blabla 'if ("\!:1" =~ "bla*") echo "chat"; if ("\!:1" !~ "bla*") echo "quiet"'
Run Code Online (Sandbox Code Playgroud)
是的,在用 tcsh 写了十多年的小东西之后,因为它几乎可以用于任何事情,“不要用 csh 写”建议应该附带大量免责声明,或者更好地形成“不要写严肃的脚本”在 csh 中”。当它是您的 shell 时,因为几乎任何地方的相关行业都不支持其他 shell,这些居高临下的响应不会做任何有用的事情。
手册页说不可能:
(单词
else并且endif必须出现在输入行的开头;if必须单独出现在其输入行或之后else.)
不要尝试在csh中编程.甚至不要将它用作交互式shell.
顺便提一下,您可以通过endif在提示符下键入来退回到正常的csh else?提示符.
| 归档时间: |
|
| 查看次数: |
4794 次 |
| 最近记录: |