la línea no se ejecuta en .bash_profile y .bashrc en mi Mac OS X Snow Leopard
-
22-09-2019 - |
Pregunta
Acabo de instalar Rubí Manager Versión (RVM), que está trabajando muy bien, pero me pidió que poner la siguiente línea en mi /.bash_profile y ~ / .bashrc archivos:
if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi
mirando el contenido veo lo siguiente:
tammam56$ cat /.bash_profile
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi
tammam56$ cat ~/.bashrc
export PATH=/usr/local/bin:$PATH
export MANPATH=/usr/local/man:$MANPATH
if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi
Sin embargo cuando comienzo a una nueva ventana de terminal no ejecuta el comando Sé que esto que me puse mi defecto de Ruby versión alemana a 1,9 y si ejecuto la línea manualmente llego a la versión correcta:
tammam56$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]
Macintosh-37:~ tammam56$ if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi
Macintosh-37:~ tammam56$ ruby -v
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-darwin10.2.0]
¿Alguna idea de cómo puedo solucionar esto?
Gracias,
Tam
Solución
Si usted tiene un ~ / .profile trate de añadir la siguiente línea a la misma.
si [[-s /Users/tammam56/.rvm/scripts/rvm]]; a continuación, la fuente de /Users/tammam56/.rvm/scripts/rvm; fi
Otros consejos
¿Se ha confirmado que otros comandos en .bashrc y / o .bash_profile actualizarse correctamente?
A continuación, debe confirmar si la terminal está comenzando la concha como un intérprete de ingreso o no (ver en Preferencias -> Puesta en marcha).
Desde la página de manual de bash:
Cuando bash se llama como un intérprete interactivo de ingreso, o como un no-inter- shell activo con la opción --login, primero se lee y ejecuta com- mands desde el archivo / etc / profile, si existe ese archivo. Despues de leer ese archivo, busca ~ / .bash_profile, ~ / .bash_login, y ~ / .profile, en ese orden, y lee y mandatos Ejecuta desde el primero que existe y es legible. La opción --noprofile puede ser utilizado cuando el shell se inicia para inhibir este comportamiento.
Cuando un shell interactivo que no es un shell de entrada se inicia, golpe lee y mandatos Ejecuta desde / .bashrc, si existe ~ ese archivo. Esta puede ser inhibida mediante la opción --norc. La opción de archivo --rcfile forzará a bash para leer y ejecutar comandos de archivo en lugar de ~ / .Bashrc.
Me encontró que la solución más fácil a este problema era mover todo el contenido de mi archivo ~ / .bashrc (así que mi ~ / .bashrc está vacía) en un nuevo archivo ~ / .bash_profile. Ahora todas las pestañas Terminal.app ejecutan automáticamente todas las líneas incluidas en ~ / .bash_profile. Esto también se aplica a iTerm.