為什麼 GNOME 顯示管理器總是讀取 .profile?
我最近從終端提示登錄(getty?)切換到 GNOME 顯示管理器。無論使用者的登錄 shell 設置如何(在我的例子中為 Zsh) ,GDM似乎總是讀取。
.profile
這是為什麼?我認為它在他們的原始碼中是硬編碼的,但我找不到。他們為什麼這樣做?該軟體是否依賴於 Bourne shell 的某些功能?如果我想同時使用 GDM 和 getty(作為備份),這不是很好,因為我需要保持我的
.profile
和.zprofile
同步。我對採購不是很有信心.profile
(.zprofile
我之前遇到了一些兼容性問題,當我嘗試採購.bashrc
時.zshrc
)。我認為 Bash 呼叫 as/bin/sh
在 POSIX 模式下表現,但我不確定它是否避免了所有陷阱。萬一這很重要,我在最新的 Arch Linux 上,用 Wayland 執行 GNOME(所以不應該
Xsession
涉及任何腳本)。
你的問題
.bashrc
是無關的。.profile
需要與所有sh
兼容的 shell 兼容,而這當然.bashrc
是特定於 Bash 的,通常不應由其他 shell 獲取。一般來說,把你想在 shell 之間共享的東西放在 中
.profile
,並確保你確實從其他 shell 的啟動文件中獲取它(當然,除非他們已經預設這樣做了)。顯然,您需要確保避免在不同的 shell 中表現不同的程式碼(例如,在 Zsh 中沒有引用是可以的,但在正確兼容 Bourne 的 shell 中會出現問題)。
至於您問題的“為什麼”部分,這是為了使您
.profile
的設置可用於您從 GUI 會話執行的程序,而不僅僅是您在 shell 中執行的程序(或者我們應該說“傳統”shell ,並將您的 GUI 會話視為“非傳統”外殼)。