Sempre que abro uma nova guia no Terminal usando Cmd+ T, ele abre o bash no mesmo diretório, como a guia anterior. Isso funciona bem quando estou no ~
diretório, mas se estiver em outro lugar, recebo um erro ao carregar.bashrc
Last login: Sat Oct 15 21:10:00 on ttys002
-bash: .bashrc: No such file or directory
Jakub-Arnolds-MacBook-Pro:projects darth$
Parece que .bashrc
é carregado via caminho relativo e não absoluto, porque se eu fizer source ~/.bashrc
, tudo funciona sem problemas.
Acho que este é um problema relacionado ao OS X Lion, porque antes da atualização do Snow Leopard, eu não tinha o mesmo problema. Mas isso pode ser causado pelo Terminal sempre abrindo às ~
, não me lembro se ele tentou abrir o mesmo diretório.
No entanto, a pergunta permanece a mesma, como posso fazer o carregamento do Terminal ~/.bashrc
via caminho absoluto, e não relativo?
Respostas:
O terminal abre um shell de logon. Isso significa que
~/.bash_profile
será executado,~/.bashrc
não.A solução na maioria dos sistemas é a "exigir" o
~/.bashrc
no~/.bash_profile
: basta colocar esse trecho na sua~/.bash_profile
:fonte
[[ -s /file/path ]]
está fazendo? Tentar o Google para obter uma explicação não é tão fácil.man bash
: -s file True se o arquivo existir e tiver um tamanho maior que zero.man bash
) fala sobre isso e explica, capítulo Invocation (apenas procurarINVOCATION
depois de chamarman bash
por digitação/INVOCATION
)Renomear
.bashrc
para.profile
(ou vincular o último ao anterior) também deve ser suficiente. Veja aqui .fonte
cd && ln -s ./.bashrc ./.profile
Observe que os links simbólicos são sensíveis em relação ao caminho do arquivo; acredito que o uso da sintaxe acima funcione, mas para garantir que você possa usar caminhos absolutos em qualquer caso..profile
fará uma quebra regularsh
.Eu tenho o seguinte no meu
~/.bash_profile
:Se eu tivesse, em
.bashrc
vez de~/.bashrc
, estaria vendo o mesmo sintoma que você está vendo.fonte