2010-09-25 4 views
3

Какие сценарии запуска - в том порядке, в котором они вызваны, - установите переменную PATH при открытии оболочки BASH в Terminal.app на OS X?Как установить переменную env PATH при открытии оболочки BASH в Terminal.app на OS X?

+0

Переменные среды также могут быть унаследованы в этом контексте я бы себе представить. Он может быть продолжен до технологической цепочки, если не будет сброшен (не просто добавлен). Но самым близким я пришел к использованию OS X - мертвый MacBook, сидящий на полке. – 2010-09-25 22:15:51

+0

Не совсем релевантно, но, может быть, полезно, что вы можете сделать постоянное изменение в PATH, увиденное * всеми * приложениями, используя команду «launchctl setenv PATH». – rptb1

ответ

7

Я нашел преступника. Секретный соус был /usr/libexec/path_helper, он выглядит в файле /etc/paths и в каталоге /etc/paths.d/.

bash Первые источники /etc/profile, который выполняет следующий код:

if [ -x /usr/libexec/path_helper ]; then 
    eval `/usr/libexec/path_helper -s` 
    # The above line is the secret sauce, so to say... 
    # First is adds default PATH values from the file /etc/paths 
    # Then all files in the /etc/paths.d/ directory are read and directories listed 
    # in each file (one per line) are appended to PATH 
fi 

if [ "${BASH-no}" != "no" ]; then 
    [ -r /etc/bashrc ] && . /etc/bashrc 
fi 

Следующая bash выглядит для ~/.bash_profile, ~/.bash_login и ~/.profile.

листинг действия вне, PATH строится следующим образом:

  1. каталогов в файле /etc/paths добавляются PATH
  2. каталогов, перечисленных в файлах в каталоге /etc/paths.d/ являются прилагается к PATH - Примечание , что они добавляются в сравнении с предшествующим.
  3. Различные PATH={DIR_2_ADD}:"${PATH}" заявления в моих ~/.bash_profile и ~/.bashrc файлы предварять PATH
Смежные вопросы