either '$(foo)' or '${foo}' is a valid reference to the variable foo. This special significance of '$' is why you must write '$$' to have the effect of a single dollar sign in a file name or recipe.shell
recursively expanded variables are defined by lines using ‘=’. Simply expanded variables are defined by lines using ‘:=’ or ‘::=’.ide
There is another assignment operator for variables, ‘?=’. This is called a conditional variable assignment operator, because it only has an effect if the variable is not yet defined.this
A substitution reference substitutes the value of a variable with alterations that you specify. It has the form '$(var:a=b)' (or '${var:a=b}') and its meaning is to take the value of the variable var, replace every a at the end of a word with b in that value, and substitute the resulting string.orm