据我了解,bin \ bash.exe会调用usr \ bin \ bash.exe,我想它带有一些选项来帮助管理Windows路径,但找不到任何文档来表明这一点。
我所知道的是,如果我将我的环境设置为使用Git\usr\bin\
而不是Git\bin
,则脚本似乎无法按预期工作。
一个新的开发箱似乎具有以下设置:
其中bash
C:\Windows\System32\bash.exe
C:\Program Files\Git\usr\bin\bash.exe
如果bin/bash.exe
是我应该使用的那个条目,我可以理解wsl是最高的条目,但是我不能理解第二个条目?
答案 0 :(得分:0)
%windir%\system32\bash.exe
=由Microsoft商店启用的用于Linux [wsl]环境的任何Windows子系统托管的嵌入式bash外壳|适用于Linux的Windows子系统| |安装。与启动菜单快捷方式%windir%\system32\wsl.exe ~ -d Ubuntu
的单独窗口启动的结果相反,但与之基本相同。
%programfiles%\git\bin\bash.exe
-> %programfiles%\git\usr\bin\bash.exe + some automatically injected arguments
=由git提供的内联[main stdin / stdout] bash shell层叠在Windows cmd.exe命令提示符环境的顶部
%programfiles%\git\git-bash.exe
=由git提供的Windows应用程序[winmain] bash shell,位于Windows cmd.exe命令提示符环境的顶部
答案 1 :(得分:0)
看来:
"C:\Program Files\Git\usr\bin\bash" -li
收益:
Me@MYPC MSYS /usr/bin
和
"C:\Program Files\Git\bin\bash" -li
收益:
Me@MYPC MINGW64 /usr/bin
所以在我看来这意味着EXE的编译方式不同。
但是在我的情况下,我脚本遇到的问题完全取决于每个exe设置的路径:
对于
"C:\Program Files\Git\usr\bin\bash.exe"
$ where FIND
C:\Windows\System32\find.exe
C:\Program Files\Git\usr\bin\find.exe
位置:
"C:\Program Files\Git\bin\bash.exe"
$ where FIND
C:\Program Files\Git\usr\bin\find.exe
C:\Windows\System32\find.exe
所以在前一种情况下,我的脚本失败了
FIND: Parameter format not correct
因为找不到正确版本的find。