Windows版Git:Git \ bin \ bash.exe和Git \ usr \ bin \ bash.exe之间的区别

时间:2018-08-07 14:54:34

标签: windows bash git

据我了解,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是最高的条目,但是我不能理解第二个条目?

2 个答案:

答案 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。