On Sat, Jul 26, 2025 at 9:44 PM Greg Wooledge <g...@wooledge.org> wrote:
> The quotation marks don't appear to matter, but
> the trailing $ does.

`$!' works as well, when there's no most recent asynchronous job:

    $ printf '<%s>\n' $(seq 3)$!
    <1
    2
    3>
    $

I think the problem is right here:
https://cgit.git.savannah.gnu.org/cgit/bash.git/tree/subst.c?h=devel#n11524
The function `param_expand' writes 0 to `*expanded_something' when
`string' ends with `$' or `$!' and there's no async job, and bash
forgets all the expansions it has done in that word. Maybe it was
supposed to be called with the address of a local copy of
`expanded_something'? There's a variable named `local_expanded' in
that function that seems to be unused...

Reply via email to