Reality check on bash behavior.
Jeff Vian
jvian10 at charter.net
Fri Jan 13 20:58:41 UTC 2006
On Thu, 2006-01-12 at 15:55 -0600, akonstam at trinity.edu wrote:
> On Thu, Jan 12, 2006 at 05:55:08PM +0000, James Wilkinson wrote:
> > akonstam at trinity.edu wrote:
> > > I need to check that my observations on bash invocation is correct.
> > > In the bash man page it states that when the bash shell in invoked the
> > > following three files are sourced: /etc/profile, ~/.bash_profile and
> > > ~/.profile. My observation is that when .bash_profile is present
> > > .profile is not sourced.
> > >
> > > This is in important to us because we have the same user directories
> > > mounted on FC4 machines and OS X machines, On OS X machines it looks
> > > like .profile is sourced even when a .bash_profile exists.
> > >
> > > I just want to check that my sanity is still in place and I am seeing
> > > what is really happening. I realize behavior on an OS X machine is off
> > > topic on a fedora list.
> >
> > Good question!
> >
> > man bash says:
> > --noprofile
> > Do not read either the system-wide startup file /etc/profile or
> > any of the personal initialization files ~/.bash_profile,
> > ~/.bash_login, or ~/.profile. By default, bash reads these
> > files when it is invoked as a login shell (see INVOCATION
> > below).
> > then
> > When bash is invoked as an interactive login shell, or as a non-inter-
> > active shell with the --login option, it first reads and executes com-
> > mands from the file /etc/profile, if that file exists. After reading
> > that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile,
> > in that order, and reads and executes commands from the first one that
> > exists and is readable. The --noprofile option may be used when the
> > shell is started to inhibit this behavior.
> >
> > So your observations are consistent with documented behaviour on Fedora.
> > I understand that this is so users who are stuck with an earlier Bourne
> > shell can put bash in their .profile, create a .bash_profile, and things
> > will still work.
> I agree with your analysis of the man bash on Fedora. I just wanted to
> see if I was reading it correctly.
> >
> > Unfortunately, I don't have access to an OS X machine.
> >
> > It's possible that something in Apple's default /etc/profile or
> > ~/.bash_profile is sourcing ~/.profile anyway. But a quick Google
> > suggests that this is not the case, and bash on OS X is not supposed to
> > run ~/.profile anyway if ~/.bash_profile exists. See, for example, Geoff
> > Lane's comments in
> > http://www.macosxhints.com/article.php?story=20030825001724805
> >
> Now the comments to refer to above have marginal relevance for the
> following reason. The latest OS X 10.4 uses bash as its default shell and
> I assure you that .profile is sourced even when .bash_profile exists.
> But this is not an OS X list so I will not push the point.
I know that on Linux a bash shell parses .profile _and_ ~/.bash_profile.
I cannot speak for differences in OS X, although I would not expect any.
AIUI the .profile contains configurations that are used by all and the
~/.bash_profile makes user specific modifications.
More information about the fedora-list
mailing list