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
大家帮我看看是什么意思。第一行已注释:)
谢谢。
这通常意味着^M在文件的每一行末尾都有一个(回车)或其他一些阻止#!/bin/bash正确解释该行的编码问题。
获取文件的副本并使用您选择的编辑器将其保存为纯 ASCII,以尽可能多地删除非 ASCII 编码。此外,如果编辑器支持,请尝试将其保存为“UNIX”格式。
我在 Windows 下运行 cygwin 时遇到了同样的问题。对我来说,这与路径无关。
它与编码有关。我用UTF-8与BOM(字节顺序标记)。BOM 导致它窒息。一旦我删除它,它就完美无缺地工作了。
我使用 Notepad++ 更新了编码:
编码 -> 没有 BOM 的 UTF-8 编码
的which bash命令输出:
/usr/bin/bash
Run Code Online (Sandbox Code Playgroud)
然而它仍然能够解决
#!/bin/bash
Run Code Online (Sandbox Code Playgroud)