Cada vez que abro una nueva pestaña en Terminal usando Cmd+ T, se abre bash en el mismo directorio que la pestaña anterior. Esto funciona bien cuando estoy en el ~
directorio, pero si estoy en otro lugar, aparece un error al cargar.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
se carga a través de una ruta relativa y no absoluta, porque si lo hago source ~/.bashrc
, todo funciona sin problemas.
Creo que este es un problema relacionado con OS X Lion, porque antes de la actualización de Snow Leopard, no tenía el mismo problema. Pero eso podría deberse a que la Terminal siempre se abre en ~
, no recuerdo si intentó abrir el mismo directorio.
Sin embargo, la pregunta sigue siendo la misma, ¿cómo puedo hacer que la Terminal cargue a ~/.bashrc
través de una ruta absoluta y no relativa?
Respuestas:
Terminal abre un shell de inicio de sesión. Esto significa,
~/.bash_profile
se ejecutará,~/.bashrc
no.La solución en la mayoría de los sistemas es "requerir" el
~/.bashrc
en el~/.bash_profile
: simplemente ponga este fragmento en su~/.bash_profile
:fuente
[[ -s /file/path ]]
está haciendo? Tratar de buscar una explicación en Google no es demasiado fácil.man bash
: -s archivo Verdadero si el archivo existe y tiene un tamaño mayor que cero.man bash
) habla sobre él y lo explica, capítulo INVOCACIÓN (solo busqueINVOCATION
después de llamarman bash
escribiendo/INVOCATION
)Cambiar el nombre
.bashrc
a.profile
(o unir suavemente el último al primero) también debería ser el truco. Ver aquí .fuente
cd && ln -s ./.bashrc ./.profile
cuenta que los enlaces simbólicos son sensibles con respecto a la ruta del archivo, creo que usar la sintaxis anterior funciona, pero para asegurarse de que puede usar rutas absolutas en cualquier caso..profile
, romperá regularmentesh
.Tengo lo siguiente en mi
~/.bash_profile
:Si tuviera en
.bashrc
lugar de~/.bashrc
, estaría viendo el mismo síntoma que estás viendo.fuente