2014-10-05 63 views
2

在玩了一段时间后,发现有些东西在bash.exe中运行命令时不能在bash中运行。Git的“Bash.exe”vs“Git Bash.vbs”

问题在于使用virtualenvwrapper。未正确激活环境。

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

而且在做workon时也没有列出环境。它只是显示一个空的列表。

但如果它在bash通过“混帐Bash.vbs”发射完成它,所有的命令做工精细,以及环境等激活

我试着寻找VBS文件,但即时通讯不是真的用于vbs代码,不知道发生了什么。

所以我想知道该.vbs确实使bash中的事情“工作”,否则将无法正常工作的。希望它不是一个virtulenvwrapper特定的问题,而是一个常见的事情,即.vbs文件可以使事情更加兼容?

编辑:更新

好了,经过一番更多的测试,我发现究竟是什么触发,但我现在仍然不为什么它也可以正常工作。

如果我从gits目录启动sh.exe,我会得到原始的破坏行为。但运行sh.exe --login和virtualenvwrapper的作品。

所以它应该是现在 - 什么是--login做让事情“工作”

+0

这与VBS无关。你为什么要这样标记它。 – Noodles 2014-10-05 13:38:23

回答

0

--login命令行选项传递给bash使其表现为一个“登录shell” —一开始为用户登录时(系统提示用户提供其用户名和密码时,系统会使用旧的“Login:”提示提示)。

虽然状态上述排序的描述中obvios的事情,从“正常”行为,真正的差别调用外壳是它读取启动文件。请参阅this section(请参阅--login-l那里的命令行选项的讨论),然后使用适当的位形式here

然后找到所有它使用Git的安装目录下的etc目录下读取文件。也就是说,你要找的是etc\profile

据称该文件在影响其行为的壳套某些事情了。