mk12
mk12

Reputation: 26354

Bash - $PATH and ${PATH}

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

Upvotes: 6

Views: 4348

Answers (3)

Eimantas
Eimantas

Reputation: 49335

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"

Upvotes: 0

Adam Rosenfield
Adam Rosenfield

Reputation: 400146

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.

Upvotes: 18

Bombe
Bombe

Reputation: 83847

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.

Upvotes: 5

Related Questions