Skip to main content

Environment variables

"Environment variables" are values that the system knows about and that you can access in your pipelines. They are referred to using a dollar symbol ($) followed by the name of the variable - and are usually upper case.

For example this command:

% echo "Hello, $USER!"

works because $USER is the name of an environment variable, that is set to your user id.

Note

You can also wrap the name in curly braces {}, which helps if there's something immediately afterwards:

% echo "Hello-${USER}2023"

Here is a table of commonly-used environment variables:

VariableWhat it is
$USERYour user ID
$HOMEYour home directory
$PATHA list of directories the command-line looks in to find programs

If you want to see what's in any of these variables, use echo to print them:

% echo $HOME
Note

As with globbing, the one place this doesn't work is inside single quotes (''). Variables are not expanded in there. Try the following to see this in action:

% echo $USER
% echo "$USER"
% echo '$USER'

This is a useful feature not a bug - for example if you really did want to print '$USER' and not the value of the $USER environment variable.