使用 Cygwin 在 Windows 上运行 shell 脚本

elb*_*bek 4 cygwin shell-script

我在使用 Cygwin 在 Windows 上运行 .sh 脚本时遇到问题。

当我运行文件时:./build.sh -s srv.txt 我得到:./build.sh: line 1: #!/bin/bash: No such file or directory

大家帮我看看是什么意思。第一行已注释:)

谢谢。

Eig*_*ony 5

这通常意味着^M在文件的每一行末尾都有一个(回车)或其他一些阻止#!/bin/bash正确解释该行的编码问题。

获取文件的副本并使用您选择的编辑器将其保存为纯 ASCII,以尽可能多地删除非 ASCII 编码。此外,如果编辑器支持,请尝试将其保存为“UNIX”格式。


Rya*_*tes 5

我在 Windows 下运行 cygwin 时遇到了同样的问题。对我来说,这与路径无关。

它与编码有关。我用UTF-8BOM(字节顺序标记)。BOM 导致它窒息。一旦我删除它,它就完美无缺地工作了。

我使用 Notepad++ 更新了编码:

编码 -> 没有 BOM 的 UTF-8 编码

which bash命令输出:

/usr/bin/bash
Run Code Online (Sandbox Code Playgroud)

然而它仍然能够解决

#!/bin/bash
Run Code Online (Sandbox Code Playgroud)