Question

What is the difference between using an environment variable, like PATH, as $PATH or ${PATH}?

Was it helpful?

Solution

There's no difference in most cases. The only times it matters is if you want to include trailing text after the expansion. For example, suppose your PATH contained the string FOO (not actually a valid path, but this is for an example), and you wanted to form the string FOOBAR. If you did

$PATHBAR

You would get the expansion of the variable named PATHBAR, which is probably not what you wanted. If you did

$PATH BAR

You would get a space between FOO and BAR, also not what you wanted. The solution is to use braces:

${PATH}BAR

This gives you FOOBAR.

OTHER TIPS

PATH is the name of the environment variable, $PATH and ${PATH} are methods of accessing them. The form ${PATH} is used to allow constructs like echo ${PATH}b which would fail using $PATHb. Also, bash allows lots of parameter replacement stuff which the man page will gladly tell you more about.

In your case there is no difference, but - take the situation: You have two variables:

$FOO = "YA"
$YADA = "bar"

then ${$FOODA} will give you nothing while ${${FOO}DA} will give you "bar"

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top