iTerm2 ejecuta mi .zshrc dos veces

Al iniciar un terminal en iTerm 2, mi .zshrc se ejecuta dos veces. ¿Posiblemente tiene algo que ver con el "último inicio de session" impreso en la parte superior de la terminal por iTerm? ¿Alguien sabe cómo arreglar esto?

Ejemplo de salida, nueva terminal:

  último inicio de session: miércoles 4 de marzo, 12:55:35 en ttys000

 La marca de una buena fiesta es que te despiertas a la mañana siguiente queriendo
 cambia tu nombre y comienza una nueva vida en una ciudad diferente.
         - Vance Bourjaily, "Esquire"

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

 ~ ❯❯❯ zsh

 Oh, el amor es lo suficientemente real, lo encontrarás algún día, pero tiene uno
 archienemigo - y eso es la vida.
         - Jean Anouilh, "Ardele"

 ~ ❯❯❯

Como puede ver, al abrir iTerm fortuna (en mi .zshrc) se ejecuta dos veces, pero cuando se inicia un nuevo shell con el terminal ya abierto, se ejecuta correctamente una vez. ¿Alguna forma de corregir este comportamiento?

  • ¿Cómo configuro mi aplicación Terminal con bash e iTerm2 con zshell y oh my zsh?
  • "L /" en shell crea un espacio en blanco
  • El tema Powerline en el terminal OSX tiene un color extraño
  • rbenv no anula la versión pnetworkingeterminada de Ruby
  • iTerm2 no muestra nombre de usuario, nombre de la máquina, time
  • cambio de terminal de usuario
  • Pipear múltiples commands homebrew
  • Extraño problema con iTerm2 (construido a partir de Git repo)
  • One Solution collect form web for “iTerm2 ejecuta mi .zshrc dos veces”

    Gran parte de esto depende de la configuration que haya realizado en ITerm y la configuration de shells.

    Por defecto iTerm ejecuta el shell en / etc / passwd como un shell de inicio de session. Por defecto, el shell es bash pero el usuario lo ha cambiado a zsh

    zsh tiene varios files que se usan al inicio. Ver zsh manual $ ZDOTDIR es por defecto su directory de inicio

    Los commands se leen por primera vez de / etc / zshenv; esto no puede ser anulado. … …

    Los commands se leen desde $ ZDOTDIR / .zshenv. Si el shell es un shell de inicio de session, los commands se leen desde / etc / zprofile y luego $ ZDOTDIR / .zprofile. Luego, si el shell es interactivo, los commands se leen desde / etc / zshrc y luego $ ZDOTDIR / .zshrc. Finalmente, si el shell es un shell de inicio de session, se leen / etc / zlogin y $ ZDOTDIR / .zlogin.

    Por lo tanto, cuando los elementos inicien un shell de inicio de session (y no asumn ningún file global en / tc), los siguientes files son originados

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

    Si zsh se inicia desde un intérprete de commands del shell, no es un shell de inicio de session, por lo que solo se lee

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

    Si obtiene un comportamiento diferente en los dos casos, mire su ~ / .zprofile y ~ / .zlogin.

    En este caso, uno de ellos probablemente está obteniendo ~ / .zshrc. Tenga en count que esto difiere de bash donde un shell de inicio de session lee ~ / .bash_profile y un shell que no es de inicio de session lee ~ / .bash_profile y este el uso normal de bash es para get ~ / .bashrc en ~ /, bash_profile para detener la necesidad de duplicar código.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).