(Bash) .bashrc vs. .bash\_profile
.bash_profile
is executed when a log-in interactive shell is started.
.bashrc
is executed when a non-log-in interactive shell is started
(e.g. starting another bash
shell from within bash
).
.bashrc
is NOT executed when a log-in interactive shell is started,
so include the following snippet into .bash_profile
so that it indirectly executes .bashrc
:
# .bash_profile
# If .bash_profile exists, bash doesn't read .profile
if [[ -f ~/.profile ]]; then
. ~/.profile
fi
# If the shell is interactive and .bashrc exists, get the aliases and functions
if [[ $- == *i* && -f ~/.bashrc ]]; then
. ~/.bashrc
fi
References:
Written on May 4, 2022