O gerenciamento de arquivos de inicialização do Bash é bizarro. Em um shell de login, o bash lê /etc/profile
e ~/.bash_profile
apenas. Em um shell interativo de não-login, o bash lê /etc/bash.bashrc
e ~/.bashrc
apenas. (Estou simplificando um pouco, leia o manual se você realmente quiser os detalhes completos.)
Para conter a loucura, use o seguinte conteúdo em ~/.bash_profile
:
# Read the shell-agnostic login hook
if [ -e ~/.profile ]; then . ~/.profile; fi
if [[ $- = *i* ]]; then
# This is an interactive shell, so read bash's interactive login hooks
# (which bash omits in login shells)
if [[ -e /etc/bash.bashrc ]]; then . /etc/bash.bashrc; fi
if [[ -e /etc/bashrc ]]; then . /etc/bashrc; fi
if [[ -e ~/.bashrc ]]; then . ~/.bashrc; fi
fi
Coloque informações sobre o tempo de login, como definições de variáveis de ambiente (por exemplo, PATH
, EDITOR
) em ~/.profile
. Coloque coisas interativas como configurações de prompt e aliases em ~/.bashrc
.
Para obter mais informações, consulte Existe um arquivo Bash que será sempre originado no modo interativo, não importa se é login ou não-login? , Diferença entre o login shell e o non-login shell? e Diferença entre .bashrc e .bash_profile