交互式 csh 或 tcsh 不做评论。该#
角色仅在脚本中引入注释。(这与 sh 及其衍生物的行为不同,例如 bash。)引用csh
手册页(来自 Solaris 9,剩余的系统之一,其中csh
不仅仅是指向 的符号链接tcsh
):
当 shell 的输入不是终端时,字符 # 会引入一个注释,该注释一直持续到输入行的末尾。当前面有 \ 或包含在匹配的引号中时,它的特殊含义会被抑制。
我认为,关键在于交互式命令不需要注释。
如果您使用 tcsh,您可以使用内置:
命令执行类似的操作,该命令什么也不做:
% : 'This is not a comment, but it acts like one.'
(其中%
表示 shell 提示符,:
是命令)。引用论点是个好主意;否则,虽然该命令没有执行,但它可以产生一些效果:
% : This will create the file "oops.txt" > oops.txt
注意,因为:
是命令,所以后面必须跟一个空格。
该:
命令最初是在非常早期的 Bourne shell 版本中引入的,甚至可能在此之前。
但是,/bin/csh
该命令的版本:
不允许任何参数,使其无法用作注释替换:
csh% : 'This will not work.'
:: Too many arguments
csh%
(当我最初发布这个答案时,我没有意识到这一点。我一定是用 tcsh 而不是真正的 csh 对其进行了测试。)
由于:
在纯 csh 中不起作用,下一个最佳解决方案可能是使用echo
并重定向输出:
csh% echo 'This is not a comment, but it acts like one.' > /dev/null
必填链接:http ://www.perl.com/doc/FMTEYEWTK/versus/csh.whynot