Subject: Re: bug#69937: 29.1; Eshell ${} expansion includes stderr

From: Jim Porter <[email-masked]>
Date: Thu, 21 Mar 2024 22:56:48 -0700

On 3/21/2024 9:20 PM, Richard Sent wrote:
> When performing expansion with ${} in Eshell, the expansion will include
> both stdin and stderr.
> 
> --8<---------------cut here---------------start------------->8---
> ~ $ echo ${ruby -e 'puts 0' -e 'STDERR.puts "1"' -e 'puts 2'}
> (0 1 2)
> --8<---------------cut here---------------end--------------->8---

Thanks for noticing this. I think this is simply a bug (although it may 
originally have been intentional due to Eshell's more-limited 
redirection operators in Emacs 28 and earlier). It would probably be 
good to follow other shells here, and people who *want* to capture both 
stdout and stderr can use 2>&1 as usual.

I'll try and put together a patch for this over the weekend.