I thought that whatever lies in .bash_profile(or .profile) which is sourced in a login-shell, is available in an interactive shell.My goal is to have available a list of functions, either in a login shell or in an interactive shell.I am using Ubuntu 14.04.1, and i don't use .profile, but instead .bash_profile.(.profile has been renamed)So currently what i have done, i have inserted the functions in .bash_profile, but when opening an interactive terminal they are not available, only if i use bash -l.
Functions in ~/.bash_profile not found in an interactive shell
bash;profile
Functions defined in .bash_profile are only available in the shell that reads .bash_profile and not available in sub shells.When you open a terminal window you may be opening a non login shell.  Some terminal programs may let you open a login shell (eg gnome-terminal has it at edit -> profile preferences).However if you shell out of another program (eg run :sh from vi) then you won't see these functions.Normally, however, functions and things you want set on every shell should be placed in .bashrc.