shell script/export question

Les Mikesell lesmikesell at gmail.com
Sat Mar 4 21:10:30 UTC 2006


On Sat, 2006-03-04 at 14:07, bruce wrote:
> hi..
> 
> i have the following simple script...
> 
> # .foo
> # User specific environment and startup programs
> 
> JAVA_HOME=/opt/IBMJava2-141
> export JAVA_HOME
> 
> -------------------
> 
> when i do a >./foo.sh,

That command will send your stdout to a file named foo.sh,
overwriting it's current contents.  Is that what you
intended?

>  and then do a echo $JAVA_HOME, i don't see the
> exported variable. foo.sh has the exe bit set (777). any idea what i'm doing
> wrong. i'm using fc4. i'm basically trying to figure out how to create a env
> var, and export the var.

The environment is only exported to programs started by the
one that exported it - that is, you can't affect your parent
process.  Normally, commands are executed in subshells that
exit when finished.  For the cases where you want to execute
commands in your current shell, you must 'source' the file
containing them. You can abbreviate the source command as '.',
but probably want you really want is to put the commands in
the files that are always sourced by your login shell which
would be .profile for yourself or /etc/profile for everyone.
There are also shell-specific variations of this, like
.bash_profile and ones that are also source by subshells
(so they can contain functions) like .bashrc.

-- 
  Les Mikesell
   lesmikesell at gmail.com
If you want to execute commands in your current
shell




More information about the fedora-list mailing list