2016-06-17 1 views
0

Я знаком с методами, которые полагаются на .bashrc на обеих платформах, но тогда всегда есть люди, у которых есть ZSH (.zshrc), и мне интересно что лучший способ проверить/идентифицировать место для обновления переменной PATH навсегда - через OSX и Linux, в частности, из сценария Bash, по крайней мере для этих двух типов терминалов. Не уверен, что мне нужно делать какие-то вложенные IF THENS, или если что-то там, что является изящным. Благодарю.Идентификация, где экспортировать обновления PATH как в Mac OSX, так и в Linux, независимо от терминала

+0

Спросите у Суперпользователя (в конечном счете, сбой сервера) –

+0

В OS X это .bashrc_profile – dmitryro

+1

Нет, не '.bashrc_profile', это' .bash_profile' –

ответ

0

В системе /etc/profile имеется системный профиль, который можно использовать для установки переменных. Конечно, для этого вам нужны права root.

0

Это будет работать для пользователей Баша и zshell пользователей, с примером в данном случае добавления miniconda, но вы можете изменить значение DIRECTORY_TO_APPEND_TO_PATH довольно легко ...

update_script_startup_file() { 
    DIRECTORY_TO_APPEND_TO_PATH="\$HOME/miniconda/bin" 
    echo "if [[ \":\$PATH:\" != *\":$DIRECTORY_TO_APPEND_TO_PATH:\"* ]]; then" >> $STARTUP_FILE 
    echo " export PATH=\"\$PATH:$DIRECTORY_TO_APPEND_TO_PATH\"" >> $STARTUP_FILE 
    echo "fi" >> $STARTUP_FILE 
} 

if [ -n "`$SHELL -c 'echo $BASH_VERSION'`" ]; then 
    STARTUP_FILE="$HOME/.bashrc" 
    update_script_startup_file 
elif [ -n "`$SHELL -c 'echo $ZSH_VERSION'`" ]; then 
    STARTUP_FILE="$HOME/.zshrc" 
    update_script_startup_file 
else 
    echo "Couldn't automatically add Miniconda to the PATH of your preferred terminal. We suggest working from Bash or ZShell." 
fi 

Если кто-то хочет изменить этот чтобы добавить поддержку для других оболочек, они очень приветствуются!