LinuxLinux (RedHat)
Linux (RedHat) sudo su -l < <user_acct>>
沒有源配置文件
如前所述,載入預設配置文件
<<user_acct>>
時遇到問題sudo su -l <<user_acct>>
。裡面
.profile
,if [ -r "${HOME}/.profile.custom" ]; then . "${HOME}/.profile.custom" fi
根據我所讀到的內容(例如,與此類似的答案),
-l
應該觸發了登錄 shell,因此 sourced.profile
,但它似乎不起作用,因為設置的環境變數.profile.custom
不存在(與如果我剛跑. .profile
,他們就出現了。修改後的問題:任何想法為什麼或如何解決這個問題?
當它是登錄 shell 時,bash 首先查找
~/.bash_profile
. 如果它沒有找到它,它會尋找~/.bash_login
. 如果它沒有找到它,它會尋找~/.profile
. 無論如何,即使登錄 shell 是互動式的,bash 也不會讀取~/.bashrc
.我建議堅持以下內容
~/.bash_profile
,並且不要有~/.bash_login
:if [ -e ~/.profile ]; then . ~/.profile; fi case $- in *i*) if [ -e ~/.bashrc ]; then . ~/.bashrc; fi;; esac
這樣
.profile
,無論您的登錄 shell 是 bash 還是其他一些 sh 變體,您.bashrc
都被載入,並且無論 shell 是否是登錄 shell,您都由 bash 載入。