Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Do I really need a .zshenv?

On Aug 27,  3:38pm, Russell Hoover wrote:
} I'd like to move everything that's in my ~/.zshenv over into my ~/.zshrc.
} Is ~/.zshrc sourced *only* in interactive shells and not on *all*
} invocations of the shell (as ~/.zshenv is)?

Yes, .zshrc (and /etc/zshrc) is for interactive shells only.

/etc/zprofile, ~/.zprofile, /etc/zlogin and ~/.zlogin are for *login*
shells only.

It's possible in some odd circumstances to have a login shell that is not
interactive -- for example, some X11 display managers run their initial X
client startup scripts via such a shell (I believe the Gnome desktop does
this; it drove me nuts trying to figure out why my X session was exiting
before it ever got started, and it turned out that I was assuming login
shells were interactive at one unfortunate point in .zprofile).

} If so, how much (why) would that matter to me?  (scripts, etc?)

Scripts, processes started on a remote machine with `rsh' or `xon', and
the aforementioned X11 display manager startups could all have different
behavior if the environment were set up entirely in .zshrc.  Whether
that matters to you depends on what sorts of commands you run this way.

Also, if the environment has already been set up properly by zprofile or
zlogin, there may be no need to reset it every time a new interactive
shell starts up.

Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   

Messages sorted by: Reverse Date, Date, Thread, Author