Where are shell variables sourced in bash under RedHat?

0

I am getitng something weird in my environment.

I have a .bash_profile that only checks for .bashrc and then sources it. I have a JAVA_HOME in that file that is correctly setting the variable and exporting it. However, if I comment out the JAVA_HOME line in .bashrc, another JAVA_HOME is still showing up in my environment, different from the one I was setting in .bashrc. Where is this other JAVA_HOME coming from?

Also, it seems like any shell I run—csh, sh, bash, etc…—is pulling in a JAVA_HOME from somewhere. I dont know what could be making this pull into csh, sh, bash, etc…

Derek

Posted 2012-03-22T16:56:27.827

Reputation: 605

Answers

0

/etc/profile is the most common

technosaurus

Posted 2012-03-22T16:56:27.827

Reputation: 996

If not /etc/profile, could be ~/.bash_profile, ~/.bash_login, or ~/.profile. When you login, bash looks for each of these files in the order shown. – fpmurphy – 2012-04-15T16:59:54.200

0

Bash follows Posix conventions and on startup first sets your shell context by sourcing the /etc/profile file. On RedHat systems, the /etc/profile file contains code to look into /etc/profile.d for files ending in '.sh'. It then sources each of them one-by-one, adding the variables set therein to your environment.

Likewise, the csh/tcsh shells run /etc/csh.login which looks into the same /etc/profile.d directory for files ending in '.csh' and does the same sourcing of them.

Try running:

$ fgrep JAVA_HOME /etc/profile.d/*.sh

and you will probably find the culprit. You can sudo-edit that file and set the proper value there, although that would be a global change for everyone logging onto the system, so consider carefully before doing that.

The purpose of those files is to allow separate packages to add environment settings germane to the user environment without having to edit the global /etc/profile file. Packages usually emplace files there in pairs of .sh and .csh with usually identical functional content.

P. Heffner

Posted 2012-03-22T16:56:27.827

Reputation: 184