2014-10-05 64 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

據稱該文件在影響其行爲的殼套某些事情了。