04. Setting Shell and Environment Variables set, export, source, .

Now let's learn how to properly set a shell or environment variable.

Setting shell variables

Shell variables, by convention, should be kept in all caps.

To set a shell variable, simply set it equal to a value.

$ VARIABLE='value'

It's the little things that matter most

Make sure to not use any spaces between the equals sign. If we do, then the shell will interpret the VARIABLE as a command, and the = as an argument.

Additionally, be sure to use single quotes to prevent expansions.

$ VARIABLE = 'value'
-bash: VARIABLE: command not found

Great! Now let's see if it was successfully set with the set variable, which lists out all shell, environmental, and local variables.

$ set | grep VARIABLE
VARIABLE=value

This will list out all variables, and find any matching variables with VARIABLE in their name.

Additionally, we can check that it's a shell variable and not an environment variable by making sure it's not an output with the printenv command, which only prints out environmental variables.

Setting Environmental Varibles

To set environmental variables, we use the export command.

$ export TEST_VAR='testing'
$ printenv | grep TEST_VAR
TEST_VAR=testing

Note that any child processes will inherit the environment variables we set.

Changing to an environment variable from a shell variable

To change an environmental variable to a shell variable, use the -n option.

$ export -n TEST_VAR
$ printenv | grep TEST_VAR
# No output since TESTVAR is no longer an environment variable.
$ set | grep TEST_VAR
TEST_VAR='testing'

Unsetting a variable

To completely unset a variable (or remove it from the session) use the unset command.

$ unset TEST_VAR

Example: adding to the $PATH

Remember that the $PATH variable contains a colon-separated list where the shell looks for any executable commands.

To add to our $PATH and have it persist for future sessions, we edit our ~/.bash_profile file, appending a colon then file name at the end.

PATH=$PATH:/path/to/new/file
export PATH

Remember to not include spaces! Now that our new $PATHvariable in set in our .bash_profile, we have to run the file.

Executing a startup file

To execute either startup file, use the source command. Or you may use its shortcut, which is just a period (.).

$ source ~/.bashrc
$ . ~/.bashrc

Conventions for storing variables

Remember, any modifications to the path variable should be placed in the .bash_profile file.

For all other changes, edit .bashrc.

If you're a system admin and need to make changes to everyone, go ahead to edit /etc/profile.

Take your Linux skills to the next level!

How Linux Works

Take your Linux skills to the next level! Try Linux & UNIX

In this completely revised second edition of the perennial best seller How Linux Works, author Brian Ward makes the concepts behind Linux internals accessible to anyone curious about the inner workings of the operating system. Inside, you'll find the kind of knowledge that normally comes from years of experience doing things the hard way.

$ Check price
39.9539.95Amazon 5 logo(114+ reviews)

More Linux & UNIX resources

Aching back from coding all day?

Inversion Therapy Table

Aching back from coding all day? Try Back Problems

Stretch out your back and relieve your back muscles with inversion therapy. This device counteracts the forces of gravity on the body by decompressing and elongating the spine. By using this product just ten minutes a day, you can be well on your way to improved circulation and posture while relieving muscle aches, back pain and stress.

$$ Check price
119.98119.98Amazon 4.5 logo(1,700+ reviews)

More Back Problems resources

Ad