I am trying to understand the use of export
command.
I tried using man export
, but there is no manual for this command.
Can anyone please help me out understanding the use of export
in UNIX?
I am trying to understand the use of export
command.
I tried using man export
, but there is no manual for this command.
Can anyone please help me out understanding the use of export
in UNIX?
When you execute a program the child program inherits its environment variables from the parent. For instance if $HOME
is set to /root
in the parent then the child's $HOME
variable is also set to /root
.
This only applies to environment variable that are marked for export. If you set a variable at the command-line like
$ FOO="bar"
That variable will not be visible in child processes. Not unless you export it:
$ export FOO
You can combine these two statements into a single one in bash (but not in old-school sh):
$ export FOO="bar"
Here's a quick example showing the difference between exported and non-exported variables. To understand what's happening know that sh -c
creates a child shell process which inherits the parent shell's environment.
$ FOO=bar
$ sh -c 'echo $FOO'
$ export FOO
$ sh -c 'echo $FOO'
bar
Note: To get help on shell built-in commands use help export
. Shell built-ins are commands that are part of your shell rather than independent executables like /bin/ls
.
Unix
The commands env, set, and printenv display all environment variables and their values. env and set are also used to set environment variables and are often incorporated directly into the shell. printenv can also be used to print a single variable by giving that variable name as the sole argument to the command.
In Unix, the following commands can also be used, but are often dependent on a certain shell.
export VARIABLE=value # for Bourne, bash, and related shells
setenv VARIABLE value # for csh and related shells
You can have a look at this at
export
is a built-in command of the bash
shell and other Bourne shell variants. It is used to mark a shell variable for export to child processes.
export
is used to set environment variables. For example:
export EDITOR=pico
Will set your default text editor to be the pico
command.