14.4 Command Substitution

A command enclosed in parentheses preceded by a dollar sign, like ‘$(...)’, or quoted with grave accents, like ‘`...`’, is replaced with its standard output, with any trailing newlines deleted. If the substitution is not enclosed in double quotes, the output is broken into words using the IFS parameter.

The substitution ‘$(cat foo)’ may be replaced by the faster ‘$(<foo)’. In this case foo undergoes single word shell expansions (parameter expansion, command substitution and arithmetic expansion), but not filename generation.

If the option GLOB_SUBST is set, the result of any unquoted command substitution, including the special form just mentioned, is eligible for filename generation.