Git的“Bash.exe”与“Git Bash.vbs”

时间:2014-10-05 12:54:27

标签: git bash sh msysgit

经过一些玩游戏后,我注意到只是在bash.exe中运行命令时,有些东西在bash中不起作用。

问题与virtualenvwrapper有关。没有正确激活环境。

ERROR: Environment '/e/virtualenvs/test' does not contain an activate script.

在执行workon时也不会列出环境。它只显示一个空列表。

但是如果它通过“Git Bash.vbs”启动它在bash中完成,那么所有命令都可以正常工作,并且环境会激活等等。

我已经尝试查看vbs文件,但我并不真正习惯于使用vbs代码而不确定发生了什么。

所以我想知道.vbs是什么让bash中的东西“工作”,否则将无效。希望它不是一个virtulenvwrapper特定的问题,但.vbs文件的一般事情是为了使事情更兼容?

编辑:更新

好的,经过一些测试后我发现了什么是触发器,但我现在还不知道为什么它会起作用。

如果我从gits目录启动sh.exe,我会得到原来的破坏行为。但运行sh.exe --login和virtualenvwrapper可以正常工作。

所以它应该是现在 - 什么是--login做的事情让事情“有效”

1 个答案:

答案 0 :(得分:1)

传递给--login的{​​{1}}命令行选项使其表现为"登录shell" - 用户登录时启动的那个(提供用户名)当系统提示时使用那个旧经典"登录:"提示)时匹配的密码。

虽然上面的描述分类陈述了一个obvios事物,但行为的真正差异来自" normal"对shell的调用是在它读取的启动文件中。请参阅this section(请参阅那里的bash--login命令行选项的讨论),然后找到here的相应位。

然后在Git安装目录下的-l目录下找到它读取的所有文件。也就是说,您正在寻找的是etc

据说该文件在shell中设置了一些影响其行为的东西。