在Windows命令提示符下运行cygwin中的bash脚本时,即使脚本正确运行,我也总是在第1行收到错误
C:\ImageMagickWatchFolder>bash .\whitebalance
.\whitebalance: line 1: #!/bin/bash: No such file or directory
... (rest of script output)
(whitebalance
是脚本的文件名)
我尝试用
替换脚本的第1行#!/cygdrive/c/cygwin64/bash
#!bash
#!C:\cygwin64\bin\bash
#!C:\\cygwin64\\bin\\bash
No such file or directory
,有些则提供command not found
)。特别是,第一行为空,它给出了
C:\ImageMagickWatchFolder>bash .\whitebalance
.\whitebalance: line 1: $'\357\273\277': command not found
我也尝试过将行结尾样式从unix切换到windows,但这让事情变得更糟。
到下面的第一条评论:
C:\ImageMagickWatchFolder>head -n 2 whitebalance | cat -A
M-oM-;M-?#!/bin/bash$
coords=""$
答案 0 :(得分:2)
想出来。我一直在使用UTF-8-BOM编码在Notepad ++中保存脚本。当更改为UTF-8或ANSI时,不再出现错误。
答案 1 :(得分:0)
从这里无法分辨,但这种情况的一种常见方式是因为行结束。确保您的脚本没有\r\n
(Windows样式)行结尾。 bash
会忽略这些但是shebang仍然无效:它会尝试查找/bin/bash\r
,然后失败。