Environment variables in bash_profile or bashrc?
- by Viriato
I have found this question [blog]: Difference between .bashrc and .bash_profile very useful but after seeing the most voted answer (very good by the way) I have further questions. Towards the end of the most voted, correct answer I see the statement as follows :
Note that you may see here and there recommendations to either put
environment variable definitions in ~/.bashrc or always launch login
shells in terminals. Both are bad ideas.
Why is it a bad idea (I am not trying to fight, I just want to understand)?
If I want to set an environment variable and add it to the PATH (for example JAVA_HOME) where it would be the best place to put the export entry? in ~/.bash_profile or ~/.bashrc?
If the answer to question number 2 is ~/.bash_profile, then I have two further questions:
3.1. What would you put under ~/.bashrc? only aliases?
3.2. In a non-login shell, I believe the ~/.bash_profile is not being "picked up".
If the export of JAVA_HOME entry was in bash_profile would I be able to execute javac & java commands? Would it find them on the PATH? Is that the reason why some
posts and forums suggest setting JAVA_HOME and alike to ~/.bashrc?
Thanks in advance.