Chaque fois que j'ouvre un nouvel onglet dans Terminal en utilisant Cmd+ T, il ouvre bash dans le même répertoire, que l'onglet précédent. Cela fonctionne bien lorsque je suis dans le ~
répertoire, mais si je suis ailleurs, j'obtiens une erreur de chargement.bashrc
Last login: Sat Oct 15 21:10:00 on ttys002
-bash: .bashrc: No such file or directory
Jakub-Arnolds-MacBook-Pro:projects darth$
Il semble être .bashrc
chargé via un chemin relatif et non absolu, car si je le fais source ~/.bashrc
, tout fonctionne bien.
Je pense que c'est un problème lié à OS X Lion, car avant la mise à niveau de Snow Leopard, je n'avais pas le même problème. Mais cela peut être dû au fait que le terminal s'ouvre toujours à ~
, je ne me souviens pas s'il a essayé d'ouvrir le même répertoire.
Cependant, la question reste la même, comment puis-je charger le terminal ~/.bashrc
via un chemin absolu et non relatif?
Réponses:
Le terminal ouvre un shell de connexion. Cela signifie,
~/.bash_profile
sera exécuté,~/.bashrc
non.La solution sur la plupart des systèmes consiste à "exiger" le
~/.bashrc
dans le~/.bash_profile
: il suffit de mettre cet extrait de code dans votre~/.bash_profile
:[[ -s ~/.bashrc ]] && source ~/.bashrc
la source
[[ -s /file/path ]]
fait? Essayer d'expliquer Google n'est pas trop facile.man bash
: -s fichier Vrai si le fichier existe et a une taille supérieure à zéro.man bash
) en parle et l'explique, chapitre INVOCATION (il suffit de rechercherINVOCATION
après avoir appeléman bash
en tapant/INVOCATION
)Changement de nom
.bashrc
à.profile
(ou de liaison souple celui - ci à l'ancien) devrait également faire l'affaire. Regardez ici .la source
cd && ln -s ./.bashrc ./.profile
Notez que les liens symboliques sont sensibles concernant le chemin du fichier, je pense que l'utilisation de la syntaxe ci-dessus fonctionne, mais pour être sûr que vous pouvez utiliser des chemins absolus dans tous les cas..profile
vous casserez la règlesh
.J'ai ce qui suit dans mon
~/.bash_profile
:if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
Si j'avais à la
.bashrc
place~/.bashrc
, je verrais le même symptôme que vous voyez.la source