Difference between ${my_variable} and $my_variable in a Jenkins project Difference between ${my_variable} and $my_variable in a Jenkins project shell shell

Difference between ${my_variable} and $my_variable in a Jenkins project


It's actually a standard shell syntax.

It's easier to manipulate variables / concatenate the contents of variables into other variable names. e.g.

${foo}bar

You can also perform additional string manipulation with the {}:

STRING="This is a string"echo ${STRING// /_}

http://www.tldp.org/LDP/abs/html/string-manipulation.html

I also find variables with {} to read better but that's a personal preference.

Generic answer here: When do we need curly braces in variables using Bash?


In the context of your Jenkins project, it is not needed, except as a matter of style.

The braces are useful in those cases where the shell may not be able to determine the end of a variable name. For instance, if your variable is named this, then you would need the braces if your command was

echo "${this}isatest"

Also, you need them when you want to take advantage of Bash's Shell Parameter Expansions.