An interactive shell gets confused (PS1 shown instead of PS2) when using
newline as the first character of the substitution:

$ bash --norc -i <<<$'${\n:;}'
bash-5.2$ ${
bash-5.2$ :;}

----
Things don't seem to work right with an empty funsub:

bash --pretty-print <<<'${ }'
${ ; }

$ bash -c '${ }'
ERROR: AddressSanitizer: heap-buffer-overflow
READ of size 1 at 0x005af9470f1f thread T0
    #0 0x56ec06e390 in parse_comsub parse.y:4462:15
    #1 0x56ec058344 in read_token_word parse.y:5294:16
    #2 0x56ec04c144 in read_token parse.y:3642:12

I'm not sure if it makes sense to accept `${ }' (like `$( )') or not (like
`{ }'). FWIW, mksh accepts both.

Reply via email to