如何在csh/tcsh中写一个可以用shebang写一个文件的别名?

How to write an alias in csh/tcsh that can write one file with shebang?

我想用我的别名编写一个脚本,但无法使用 echo 命令在我的脚本中添加 bang 行。 我试过这些方法:

alias wnc 'echo "#\!/bin/csh " > cshCMD.csh; echo "ncl" >> cshCMD.csh; chmod +x cshCMD.csh; '

alias wnc "echo '#\!/bin/csh ' > cshCMD.csh; echo 'ncl' >> cshCMD.csh; chmod +x cshCMD.csh;"  

如果我 运行 这些行没有别名,那么它们对我有用。

echo "#\!/bin/csh " > cshCMD.csh; echo "ncl" >> cshCMD.csh; chmod +x cshCMD.csh; 

通过直接输入和使用命令,我将获取文件中的数据 cshCMD.csh 为:

而当我在命令行上使用别名时

wnc 

我收到这条消息:

/bin/csh: Event not found

您的别名扩展需要\!,所以定义时必须使用\!。第一个反斜杠在 alias-defining 命令的处理过程中消失,第二个反斜杠在别名运行时保护 !