Date: Tue, 27 Jun 2023 07:44:56 -0400 From: Greg Wooledge <g...@wooledge.org> Message-ID: <zjrlujeyuoenj...@wooledge.org>
| I'm seeing some parser voodoo here. Not doing field splitting, or globbing, is normal for any assignment statement. Consider the simple (no arrays involved) IFS=$', \t\n' var=x*,y? final=$var regardless of what files matching "x*,y?" might exist, and that when $var is expanded it contains an IFS character, and in other context would be field split. Not here. That in itself has never been the issue here. It isn't even surprising. The real voodoo is in detecting the [] om the array value while parsing the assignment statement, I suspect. That's what is making the difference in the two examples from the OP. And of course, inside the command substitution, the outer context is irrelevant - that's parsed and evaluated just as if it were a standalone statement, and pathname expansions (and all the rest) and field splitting (even quote removal) all happen in there. kre