Take maintainership.
Changelog from AN-2020-07-01:
- Bourne Shell: A command like
bosh -c 'var=$({ echo value >&3; } 3>&1); echo $var'
Did not print "value" as expected, but rather bosh: 3: bad file number
This is related to the fact that curly brackets do not have an
own binary node type in the parsed output and the recursive parser
from the $(cmd) execution needs to reconstruct the text form
of a command tree. As a result, the command has been translated
into:
bosh -c 'var=$( echo value >&3 3>&1); echo $var'
and this caused the observed problem.
Note that this basic problem may not be finally fixed, so please
report in case that other commands with curly brackets together
with $(cmd) cause problems.
Thanks to Koichi Nakashima for reporting.