Bash

全域 bash_profile

  • October 17, 2020

我意識到有用於設置全域環境變數/etc/profile/etc/bashrc文件,也許我只是誤解了它們的目的,但是……

有全域bash_profile文件嗎?

我正在使用 Mac OS X

它不叫bash_profile,但全域 bash 配置的標準位置是/etc/bash.bashrc. /etc/profile如果 shell 是 bash ,通常會呼叫它。例如,在我的/etc/profile我有:

if [ "$PS1" ]; then
 if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
   # The file bash.bashrc already sets the default PS1.
   # PS1=’0
   if [ ‐f /etc/bash.bashrc ]; then
     . /etc/bash.bashrc
   fi
 fi
fi

在使用方面,/etc/profile為所有 Bourne 兼容的 shell(sh、bash、ksh 等)提供系統範圍的配置。通常不需要等效的/etc/bash_profile,因為配置文件的目的是控制登錄 shell 的行為。通常你想做的任何事情都不會是特定於 bash 的。/etc/bash.bashrc是特定於 bash 的,將為登錄和非登錄 shell 執行。

更複雜的是,看起來 OS X 甚至沒有/etc/bash.bashrc. 這可能與 OS X 中的終端預設作為登錄 shell 執行的事實有關,因此失去了區別:

終端視窗指南的一個例外是 Mac OS X 的 Terminal.app,它預設為每個新終端視窗執行一個登錄 shell,呼叫 .bash_profile 而不是 .bashrc。其他 GUI 終端仿真器可能會這樣做,但大多數情況下不會這樣做。

我不執行 OS X,所以我的知識範圍到此為止。

引用自:https://unix.stackexchange.com/questions/48870