linux - 无法从 Windows 批处理文件运行 shell 脚本

标签 linux windows bash shell

我一直在尝试编写一些脚本,但我似乎无法理解我遇到的这个错误。

bash:/test.sh: 没有这样的文件或目录

基本上,我想使用带有 -c-l 选项的 bash 来运行脚本 test.sh:

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

但这整行是从与 test.sh 位于同一目录中的 Windows 批处理文件 (.cmd) 调用的。我使用的是 64 位 Cygwin(但我也安装了 MinGW)。我已确保文件路径指向 bash.exe(设置了路径)并且它是正确的,就像 shebang 一样。我还在脚本上做了dos2unix

有什么想法吗?仅供引用,我写的那行代码在 Cygwin 中运行得非常好。

最佳答案

我发现了问题。

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

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

这个故事的寓意:永远不要将两个指向两个同名程序的路径放入 Path 变量中!

关于linux - 无法从 Windows 批处理文件运行 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31015951/

相关文章:

arrays - 在 Shell 脚本中组织一系列数据

windows - 用于演示目的的 'read-only' 、 'non-removable' 应用程序安装日期的存储位置

python - 如何在 python 脚本内的子进程中使用 * ?

linux - 如何将版本号作为变量传递给 rpmbuilder?

linux - Linux、Mac 和 Windows 上的常见文件系统属性

bash - cURL - 通知上传进度

php - 如何在 PHP 脚本交互中输入重音词?

linux - Linux 中的 'my.cnf' 文件在哪里?

r - 如何修复 'gcc: error: "/usr/lib64/R/library/Rhdf5lib/lib/libhdf5.a": No such file or directory' in R

windows - "descript.ion"文件规范?