Where are bash profile startup files?
Solution 1:
This probably doesn't answer the mail question but here is some more info on the startup files.
Are you searching for the files in Finder? Make sure that you are searching from a terminal and using ls -A
so that hidden files (files beginning with a '.
') show up.
The following is from the Bash Reference Guide. It describes the startup files that are executed when you start a new terminal window in OS X (which is an interactive, login shell).
6.2 Bash Startup Files
This section describes how Bash executes its startup files. If any of the files exist but cannot be read, Bash reports an error. Tildes are expanded in file names as described above under Tilde Expansion (see Section 3.5.2 [Tilde Expansion], page 19).
Interactive shells are described in Section 6.3 [Interactive Shells], page 75.
Invoked as an interactive login shell, or with ‘--login’
When Bash is invoked as an interactive login shell, or as a non-interactive shell with the --login
option, it first reads and executes commands 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.
When a login shell exits, Bash reads and executes commands from the file ‘~/.bash_logout’, if it exists.
Solution 2:
That particular line (You have mail
) isn't actually part of bash's startup but an alert that your local account on your computer has received mail for some reason.
You can use mail
to read and delete the message or just delete the message (most likely a bounce back or something from development) from /var/mail/username
Solution 3:
This notification is configured by environment variable MAILCHECK
. See man bash
and search for MAILCHECK
(press /
and type MAILCHECK
to search in the man page).
Here's the relevant excerpt:
MAILCHECK Specifies how often (in seconds) bash checks for mail. The default is 60 seconds. When it is time to check for mail, the shell does so before displaying the primary prompt. If this variable is unset, or set to a value that is not a number greater than or equal to zero, the shell disables mail checking.
To verify that this variable is indeed set, run echo $MAILCHECK
To disable this notification, add the following line to your ~/.bashrc
unset MAILCHECK