Recentemente: Especifiquei um caminho de diretório inicial para um usuário em /etc/passwd com espaços nele? mas agora o meu .bashrc
não origina corretamente quando abro uma janela do Ubuntu 16.04 LTS WSL, então eu tenho source
que manualmente ... que funciona com source ~/.bashrc
, mas curiosamente não funciona com source $HOME/.bashrc
, mas estranhamente funciona com source "$HOME"/.bashrc
.
Então , Jeff , na pergunta anterior, pensou que talvez o problema seja que outra coisa o está fornecendo sem as aspas em torno dele.
Na verdade, um problema semelhante me fez bifurcar o projeto git hub no qual estava ocorrendo um erro semelhante; Eu atribuí isso porque eu estava usando mingw64 / git-bash para Windows, mas esse não era o problema porque agora está ocorrendo no WSL ... er, pelo menos, acho que é o caso ...
Isso é normal: não deveria funcionar .
source "$HOME/.bashrc"
executa as instruções do arquivo.bashrc
em seu diretório pessoal, massource $HOME/.bashrc
pega o caminho para.bashrc
, divide-o no espaço em branco e executa as instruções do arquivo cujo nome é a parte até o primeiro espaço e usa as outras partes como argumentos posicionais (disponíveis a partir"$@"
do código em.bashrc
). (Isso supondo que não haja curingas no valor deHOME
.)Normalmente nada executaria um comando como
source ~/.bashrc
: bash já faz isso quando é iniciado. Uma explicação provável é que a janela WSL executa um shell de login . Quando o bash é um shell de login, ele não carrega.bashrc
, ele carrega.bash_profile
ou ,.profile
em vez disso , . A maioria das pessoas contorna essa peculiaridade comprando.bashrc
do.bash_profile
. Verifique o seu.bash_profile
(ou se você não tiver um seu.profile
, eles podem ter o método errôneosource $HOME/.bashrc
ou. $HOME/.bashrc
em vez de um dos corretos (source ~/.bashrc
, ou se você gosta de ser verbosesource "$HOME/.bashrc"
, ou qualquer um deles com.
em vez desource
).