5 votos

iTerm2 dirige mi .zshrc como dos veces

Cuando se inicia una terminal en iTerm 2, mi .zshrc como se ejecuta dos veces. Posiblemente tenga algo que ver con la "última conexión" impreso en la parte superior de la terminal de iTerm? Alguien sabe cómo solucionar este problema?

Ejemplo de salida, la nueva terminal:

último inicio de sesión: Wed Mar 4 12:55:35 en ttys000

La marca de una buena parte es que usted se despierta a la mañana siguiente, queriendo
cambiar su nombre y empezar una nueva vida en otra ciudad.
 -- Vance Bourjaily, "Esquire"

Nunca se sabe lo que es suficiente hasta que no sepa lo que es más que suficiente.
 -- William Blake

~ """ zsh

Oh, el amor es bastante real, usted va a encontrar algún día, pero tiene una
archi-enemigo-y que es la vida.
 -- Jean Anouilh, "Ardele"

~ """

Como se puede ver, al abrir iTerm fortuna (en mi .zshrc como) se ejecuta dos veces, pero al momento de iniciar un nuevo shell con el terminal ya abierto correctamente corrió una vez. Cualquier forma de corregir este comportamiento?

7voto

yoliho Puntos 340

Mucho de esto depende de la configuración que ha hecho en ITerm y la configuración de las conchas.

Por defecto iTerm ejecuta la shell en /etc/passwd como un shell de inicio de sesión. Por defecto es el shell bash, pero el usuario ha cambiado esto a zsh

zsh tiene varios archivos que se utilizan en el inicio ver zsh manual $ZDOTDIR es por defecto de su directorio home

Los comandos de la primera lectura de /etc/zshenv; esto no puede ser reemplazado. ... ...

Los comandos a continuación se lee desde $ZDOTDIR/.zshenv. Si el shell es un intérprete de comandos, los comandos de lectura de /etc/zprofile y, a continuación, $ZDOTDIR/.zprofile. Entonces, si la cáscara es interactivo, los comandos de lectura de /etc/zshrc como y, a continuación, $ZDOTDIR/.zshrc como. Por último, si el shell es un intérprete de comandos de inicio /etc/zlogin y $ZDOTDIR/.zlogin se leen.

Así que cuando los elementos se inicia un shell de inicio de sesión (y no asumimos ninguna global de los archivos en /tc) los siguientes archivos son de origen

/etc/zshenv
~/.zshenv
~/.zprofile
~/.zshrc
~/.zlogin

Si zsh se inicia desde un intérprete de comandos no es un shell de inicio de sesión, por lo que sólo se leen las siguientes

/etc/zshenv
~/.zshenv
~/.zshrc

Si usted consigue un comportamiento diferente en los dos casos, a continuación, mira a tu ~/.zprofile y ~/.zlogin .

En este caso uno de ellos es, probablemente, el abastecimiento ~/.zshrc como. Tenga en cuenta que esto difiere de bash donde un shell de inicio de sesión se lee ~/.bash_profile y no login shell lee ~/.bash_profile y esta normal bash uso es source ~/.bashrc ~/,bash_profile para detener la necesidad de duplicar código.

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