我写了简单的脚本test
echo hello #<-- inside test
如果我在你好后按一次输入,我的脚本将运行,如果我不按 - 它不会,如果两次我会收到我的 hello 并且找不到 + 命令,有人可以解释一下这种行为吗谢谢进步
This is not a part of the code, this is actual code
我通过 Windows 命令的编辑器在 C-Shell 上运行它:
source ./test
几点:
你不应该问带有 [csh] 和 [bash] 标签的问题——它们是完全不同的程序,实现完全不同的脚本编程语言
永远不要命名脚本(或任何其他程序)test
,因为这是 bash 内置功能的名称
发布您询问的实际代码,不带注释并展示您如何运行它。
我试过一个类似的案例。我写了一个像你这样的脚本,使用 Windows 记事本(带有 CRLF 行终止符)保存它并在 bash 中运行,与你在 csh 中的效果相同。问题是 bash (所以 csh 也是如此)不理解 Windows 的 2 字节行终止符,它们被解释为命令,显然不存在。解决方案是:更改您的编辑器或配置您当前的编辑器以使用 unix 行终止符。
您可以尝试例如Notepad++。请记住将行终止符更改为 LF。