Environment variables in bash_profile or bashrc?

Posted by Viriato on Super User See other posts from Super User or by Viriato
Published on 2012-04-06T04:15:25Z Indexed on 2012/04/06 5:32 UTC
Read the original article Hit count: 524

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.

  1. Why is it a bad idea (I am not trying to fight, I just want to understand)?

  2. 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?

  3. 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.

© Super User or respective owner

Related posts about bash

Related posts about path