2017-05-12 35 views
1

當我運行Cygwin.bat我已經得到了我所有的我自定義的東西從.bash_profile工作,但是當我剛跑bash沒有我的東西從.bash_profile是工作,我只是得到了有線前綴像[email protected]:/mnt/c/cygwin64#(如我的當前目錄)差異運行「Cygwin.bat」當如果只是運行「慶典」(的.bash_profile對.bashrc)中

有什麼辦法來達到同樣的效果運行bash時,我得到了運行Cygwin.bat

的時Cygwin.bat的內容是:

@echo off 

C: 
chdir C:\Tools\cygwin64\bin 

bash --login -i 
+2

'--login'是區別 – matzeri

回答

2

正如評論所指出的@matzeri,cygwin.bat調用bash與創建交互式登錄shell--login選項。而bash沒有--login選項創建一個交互shell這不是一個登錄shell

據的bash man page

當bash被調用作爲交互式登錄殼,或作爲非交互 殼--login選項時,它首先讀取和從 執行命令文件/etc/profile,如果該文件存在。讀取文件之後,它 查找~/.bash_profile~/.bash_login,和~/.profile,按照該順序,和 讀取並從存在並且是可讀的第一個執行命令。 當shell啓動時,可能會使用--noprofile選項來禁止此行爲。

交互的shell不是一個登錄shell啓動時,bash讀取 和~/.bashrc執行命令,如果該文件存在。這可能是 使用--norc選項禁止。 --rcfile文件選項將強制 bash從文件讀取並執行命令,而不是~/.bashrc

~/.bash_profile只有一個行:

source ~/.bashrc 

,我把所有的conf在~/.bashrc