Falha ao originar um PATH de adição em ~ / .bashrc

0

Gostaria de definir um caminho especificado para $ PATH,

Eu escrevo no topo de .bashrc

$ cat ~/.bashrc
export PATH=/usr/local/opt/coreutils/libexec/gnubin:$PATH

e ative-o

$ source ~/.bashrc

Funciona

/usr/local/opt/coreutils/libexec/gnubin:/Users/me/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/me/.rvm/bin:/usr/local/mysql/bin:/Users/me/.rvm/bin:/Users/me/.rvm/bin:/Users/me/.rvm/bin

No entanto, quando abro um novo terminal, ele desaparece.

$ echo $PATH
/Users/me/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/me/.rvm/bin:/usr/local/mysql/bin

Como teste, fechei todos os terminais e reiniciei o processo

$ echo $PATH
/Users/me/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/me/.rvm/bin:/usr/local/mysql/bin

O caminho /usr/local/opt/coreutils/libexec/gnubin não está lá.

Eu verifiquei minhas operações:

1. put desired path to the top
2. export it 
3. source to activate it.

O que há de errado com minhas operações?

    
por JawSaw 27.10.2018 / 10:37

1 resposta

3

O aplicativo Terminal (assim como o iTerm) no macOS (que eu acredito que você esteja usando) inicia um shell login por padrão. Quando bash é iniciado como um shell de login, ele lê seu arquivo ~/.bash_profile , mas não ~/.bashrc .

Você pode alterar a forma como o seu terminal inicia o shell nas preferências do terminal ou pode fazer com que o seu ~/.bash_profile origine o arquivo ~/.bashrc adicionando o seguinte a ~/.bash_profile (provavelmente no final do arquivo) :

if [[ "$-" == *i* ]] && [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

Isso faria com que o shell de login também lesse o arquivo ~/.bashrc se ele fosse um shell interativo e se o ~/.bashrc existisse.

Como alternativa, você pode obviamente adicionar a modificação a PATH in ~/.bash_profile . Acredito que o macOS não instale um arquivo ~/.bashrc padrão nos diretórios iniciais dos usuários.

Relacionados:

por 27.10.2018 / 10:50

Tags