Bash Startup Files

Arend P. van der Veen apv at capital.net
Thu Jun 10 10:59:17 PDT 2004


Hi,

I have been trying to clarify what bash startup files are sourced and when.  
I am using bash-2.05b.007.  I have been hunting around on the web and I have
found the following summary: 

For Login shells:

    On logging in:
       If `|/etc/profile|' exists, then source it.

       If `|~/.bash_profile|' exists, then source it,
          else if `|~/.bash_login|' exists, then source it,
             else if `|~/.profile|' exists, then source it.

    On logging out:
       If `|~/.bash_logout|' exists, source it.

For non-login interactive shells:
    On starting up:
       If `|~/.bashrc|' exists, then source it.

For non-interactive shells:
    On starting up:
       If the environment variable |ENV| is non-null, expand the
       variable and source the file named by the value.  If Bash is
       not started in Posix mode, it looks for |BASH_ENV| before
       |ENV|.

(From http://www.cse.unsw.edu.au/help/doc/info/bash/Bash_Startup_Files.html)

Other discussions on this topic essentially state the same thing.
After some testing it is not clear to me if bash under FreeBSD 4.9 is 
working the same way. I have a case where both ~/.profile and ~/.bash_profile 
exist and both are sourced.   This is in contradition to the above statements.

Can anybody point me to information to clarify what bash startup files are sourced
and when ?

Thanks in advance,
Arend van der Veen




More information about the freebsd-questions mailing list