经过一些玩游戏后,我注意到只是在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做的事情让事情“有效”
答案 0 :(得分:1)
传递给--login
的{{1}}命令行选项使其表现为"登录shell" - 用户登录时启动的那个(提供用户名)当系统提示时使用那个旧经典"登录:"提示)时匹配的密码。
虽然上面的描述分类陈述了一个obvios事物,但行为的真正差异来自" normal"对shell的调用是在它读取的启动文件中。请参阅this section(请参阅那里的bash
和--login
命令行选项的讨论),然后找到here的相应位。
然后在Git安装目录下的-l
目录下找到它读取的所有文件。也就是说,您正在寻找的是etc
。
据说该文件在shell中设置了一些影响其行为的东西。