Bash
bashrc 與 bash_profile 的功能有何不同?
由於 IntelliJ 不想送出我的程式碼,我一直在失去理智。我已經投入
export GPG_TTY=$(tty)
了 my.bash_profile
而不是 my.bashrc
; echoing$GPG_TTY
以正確的路徑響應,但我仍然不斷收到gpg: failed to sign the data
錯誤消息。據我所知,
.bash_profile
當 Bash 作為互動式登錄 shell 呼叫時讀取並執行,而.bashrc
為互動式非登錄 shell 執行;$PATH
因此變數應該進入.bash_profile
…?或者,至少,我是這麼認為的。我想知道兩者之間的功能區別是什麼:為什麼它在我的個人資料中不起作用,但在 rc 中起作用?
一個問題的解決方法:把 in 放進
export var
去.bashrc
,然後呼叫.bashrc
from.bash_profile
。是的,區別在於登錄與非登錄。當
bash
您登錄時,將處於登錄模式,bash
例如通過ssh
或在非 gui 機器上。但是一旦您登錄,所有新的 bash 實例都將以非登錄模式啟動。如果您有 GUI 桌面,您將登錄 WM 而不是
bash
. 所以你永遠不會有bash
登錄模式(除非你專門用一個--login
選項來呼叫它)。因此,即使.bash_profile
在帶有 GUI 的工作站上也毫無意義。但是您仍然可以擁有它,以防您通過 登錄到該機器使用者
ssh
,或者您的 WM 中斷並且您需要啟動恢復程序。當然,官方文件是必須閱讀的: https ://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Bash-Startup-Files