Macro Substitution

To substitute text within a macro, use the following syntax:

$(macroname:string1=string2)

When macroname is invoked, each occurrence of string1 in its definition string is replaced by string2. Macro substitution is case sensitive and is literal; string1 and string2 cannot invoke macros. Substitution does not modify the original definition. You can substitute text in any predefined macro except $$@.

No spaces or tabs precede the colon; any after the colon are interpreted as literal. If string2 is null, all occurrences of string1 are deleted from the macro's definition string.