4 votos

He añadido esto a mi fichero. bash_profile pero descuidado etiquetarlo y olvidó lo que significa exactamente

Recuerdo que ampliamente lo que hace, pero no específicamente:

    if [ -f ~/.bashrc ]; then
    source ~/.bashrc
    fi

¿Qué es exactamente el propósito para él otra vez?

4voto

shsteimer Puntos 8749

Esta orígenes de una ~/.bashrc archivo si existe y carga el contenido de ese archivo.

La respuesta corta a tu pregunta es: esto se hizo así que no importa cómo usted consigue para su máquina, a través de una concha se abrió en una sesión de escritorio interactiva o un ingreso de ssh a la máquina, su bash shell tiene un consistente programa de instalación.

La no respuesta a por qué tenía que hacerlo de esta manera se encuentra por debajo de...

La razón por la que quieres hacer esto está inmerso en bash historia: uno de esos archivos se utiliza para inicios de sesión interactivos, y la otra se usa para los no-inicios de sesión interactivos. El pensamiento detrás de tener dos configuraciones diferentes es que usted podría desear algunas cosas en tu shell interactivo (un símbolo de lujo, un mensaje del día, colourization de su comando de salida, etc.) que no quieres en un no-sesión interactiva porque los viajes en el acceso mediante programación a la entrada y salida y lo que no.

Para la mayoría de usuarios, aunque desea que ambos entornos a ser el mismo. La mayoría de nosotros no están funcionando lo suficientemente complicado como bash configuraciones para justificar la separación de los interactivos y no interactivos configuraciones como este.

El .bash_profile es ejecutado por shells de inicio de sesión, mientras que .bashrc es ejecutado por interactivas no shells de inicio de sesión.

Hay un buen artículo por Josh Staiger que habla acerca de por qué uno sobre el otro y cómo recordar dónde poner las cosas. Permitidme citar algunos de aquí:

Lo que es un inicio de sesión o no-shell de inicio de sesión?

Cuando de inicio de sesión (tipo de nombre de usuario y contraseña) a través de la consola, ya sea sentado en la máquina, o de forma remota a través de ssh: .bash_profile es ejecutado para configurar el shell antes de la primera símbolo del sistema. Pero, si ya has iniciado sesión en tu máquina y abra una nueva ventana de terminal (xterm) dentro de Gnome o KDE, a continuación, .bashrc es ejecutado antes de que la ventana de símbolo del sistema. .bashrc también se ejecuta cuando se inicia una nueva instancia de bash escribiendo /bin/bash en un terminal.

Mac OS X - a excepción de

Una excepción a la ventana de terminal directrices de Mac OS X Terminal.app, el cual se ejecuta un shell de inicio de sesión por defecto para cada nueva ventana de terminal, llamando .bash_profile en lugar de .bashrc. Otras GUI de los emuladores de terminal server puede hacer lo mismo, pero la mayoría tienden a no.

Recomendación

La mayoría del tiempo usted no desea mantener separado en dos archivos de configuración de inicio de sesión y no shells de inicio de sesión - cuando se establece una RUTA de acceso, que quiere que se aplican a ambos. Usted puede solucionar este problema mediante el sourcing .bashrc de su .bash_profile archivo, a continuación, poner la RUTA de acceso y configuraciones comunes en .bashrc.

Para ello, agregue las líneas siguientes .bash_profile:

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

Ahora, cuando usted ingrese a su máquina desde una consola .bashrc será llamado.

0voto

yoliho Puntos 340

Ver a Ian C descripción de lo que la línea de código fuente ¿

Este está rodeado por una declaración de si

if x; then
  ....
fi

esto comprueba en x y, a continuación, ejecuta el código entre el entonces y el fi (La idea de fi de terminar y, si y otro endins por reverseing el principio clave es el uso en sh y relacionados con conchas.

La verificación que se hace aquí es [ -f ~/.bashrc ] que es el mismo que test -f .bashrc el si le dice a prueba de devolver true iff lo que sigue-f es un archivo y no lo existe.

Por lo que el código dice que si hay una .bashrc se ejecuta en el cirrent shell.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X