2016-08-29 38 views

回答

1

編號.bashrc交互只與殼有關。

+0

不會Bash加載'.bashrc',但一旦達到'[-z'$ PS1「] && return',什麼都不做?所以如果你把命令放在那一行之上,那麼它們會被執行。 –

+0

@JonnyHenly,不,它不會。無論誰在''.bashrc'中放入'[-z'$ PS1「] && return',都是貨物追蹤它,而不是根據記錄的或實際的行爲做一些有意義的事情。令人遺憾的是,在bash中有很多貨物問題,即使是那些應該知道得更好的人(比如那些爲Linux經銷商工作的人)。 –

+0

@JonnyHenly,......當然,也可能是他們在做一些類似hackery的事情,比如設置一個指向'$ HOME/.bashrc'的'BASH_ENV'變量,但那是...呃... hackery ,這使得貝殼的行爲與其文件(和合理的人們的期望)相反。 –

3

bash手冊describes which startup files are read under which conditions。從它你會收集bash.bashrc只有當作爲一個交互,非登錄shell被調用,--norc選項或--rcfile選項命名一個不同的文件時自動讀取.bashrc

不過要注意的:

  • 除了爲自己考慮「互動」的默認標準,bash認爲自己的互動如果與-i選項調用。當調用bash來運行腳本時,您可以使用它來在啓動時讀取~/.bashrc

  • 通過在shell的初始環境中指定其名稱作爲變量BASH_ENV的值,可以使非交互式shell讀取特定的啓動文件(可以依次讀取其他文件)。

  • 如果自動讀取,它是用戶~/.bashrc被讀取 - 這是運行腳本,而不是機器整體的用戶的特徵。

相關問題