2015-06-24 145 views
0

我一直在尝试做一些脚本,但我似乎无法理解这一个我有错误。无法从Windows批处理文件运行shell脚本

bash: /test.sh: No such file or directory

基本上,我想运行一个脚本,使用test.shbash-c-l选项:

bash -l -c ~/opt/ct/src/test.sh 

但整条生产线是从Windows批处理文件调用(.CMD)位于与test.sh相同的目录中。我正在使用64位Cygwin(但我也安装了MinGW)。我确保文件路径指向bash.exe(做了一个PATH),并且它是正确的,就像shebang一样。我也对脚本做了dos2unix

任何想法为什么?仅供参考我写的这一行在Cygwin中工作得很好。

+0

Windows文件系统中的'c:\ cygwin \ home \%username%\ opt \ ct \ src'中是否存在'test.sh'? – rojo

+0

是的,它确实存在。 – KaiserHaz

+0

错误消息很可能表示test.sh的错误位置,它在根目录中搜索。也许尝试Cygwin样式路径('/ cygdrive/c/....'),看看是否有帮助,假设bash也来自Cygwin? –

回答

0

我发现了这个问题。

我知道我很久以前在Windows Path变量中添加了MinGW的路径。看来,当我做bash时,它实际上运行MinGW而不是Cygwin(使用which bash.exe验证)。

我删除了MinGW的路径,瞧,它的工作。

道德故事:永远不要把两个路径指向一个Path变量中两个相同名称的程序!

相关问题