7.2.1.2. Exporting variables
An individual variable's content is usually displayed using the
echo command, as in these examples:
debby:~> echo $PATH
/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin:/usr/local/bin
debby:~> echo $MANPATH
/usr/man:/usr/share/man/:/usr/local/man:/usr/X11R6/man
|
If you want to change the content of a variable in a way that is
useful to other programs, you have to export the new value from
your environment into the environment that runs these programs. A
common example is exporting the PATH
variable. You may declare it as follows, in order to be able to
play with the flight simulator software that is in /opt/FlightGear/bin:
debby:~> PATH=$PATH:/opt/FlightGear/bin
|
This instructs the shell to not only search programs in the
current path, $PATH, but also in the
additional directory /opt/FlightGear/bin.
However, as long as the new value of the PATH variable is not known to the environment,
things will still not work:
debby:~> runfgfs
bash: runfgfs: command not found
|
Exporting variables is done using the shell built-in command
export:
debby:~> export PATH
debby:~> runfgfs
--flight simulator starts--
|
In Bash, we normally do this in
one elegant step:
export VARIABLE=value
The same technique is used for the MANPATH variable, that tells the man command where to look for compressed man pages.
If new software is added to the system in new or unusual
directories, the documentation for it will probably also be in an
unusual directory. If you want to read the man pages for the new
software, extend the MANPATH variable:
debby:~> export MANPATH=$MANPATH:/opt/FlightGear/man
debby:~> echo $MANPATH
/usr/man:/usr/share/man:/usr/local/man:/usr/X11R6/man:/opt/FlightGear/man
|
You can avoid retyping this command in every window you open by
adding it to one of your shell setup files, see
Section 7.2.2.