gpt4 book ai didi

csh - 未找到事件 csh

转载 作者:行者123 更新时间:2023-12-02 10:40:34 27 4
gpt4 key购买 nike

我有这个非常简单的 csh 脚本。

#!/bin/csh
echo "Hello World!"
echo "How are you today?"

但我收到错误“:未找到事件。

出了什么问题?

最佳答案

csh 使用 ! 字符进行历史替换。因此在序列 !" 中," 不被视为字符串的右引号;相反,shell 会在命令历史记录中搜索以 " 开头的内容,就像在命令行中键入 !foo 会重复以 foo< 开头的最新命令一样.

至少对于原始 csh,这种替换总是会完成,即使在单引号字符串中也是如此(因此将双引号更改为单引号不一定有帮助)。

转义 ! 字符的唯一方法是使用 \ 反斜杠:

#!/bin/csh -f
echo "Hello World\!"
echo "How are you today?"

(在某些系统上,我发现使用单引号而不是双引号确实可以避免错误。我认为这是因为在这些系统上 /bin/csh 是到 /bin/tcsh 的符号链接(symbolic link),其工作方式略有不同。如果您希望脚本可移植,则不应依赖它。)

请注意,我还在 #! 行中添加了 -f 选项。这可以防止 shell 在启动时执行 $HOME/.cshrc,这对于 csh 脚本来说通常是一个好主意。它使它们运行得更快一些,并且可以防止意外依赖您自己的 .cshrc,这在其他人运行您的脚本时可能会出现问题。

如果有任何有关 csh 脚本的问题,我有法律义务 [*] 发布此链接:

http://www.perl.com/doc/FMTEYEWTK/versus/csh.whynot

[*] 我实际上没有法律义务发布此链接。

关于csh - 未找到事件 csh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19174808/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com