Re: A feature request regarding redirection to variables

2023-12-18 Thread Oğuz
On Mon, Dec 18, 2023 at 7:39 AM Luke Tidd  wrote:
>
> A very common thing I need to do when writing bash is to collect both
> the stdout and stderr of a command. This can be done relatively
> reasonably with files but it would be very attractive to be able to
> redirect these directly to a variable some how.

The new no-fork command substitution feature already allows this:

$ f(){ echo foo; echo bar >&2;}
$ a=${ { b=${ f;};} 2>&1;}
$ declare -p a b
declare -- a="bar"
declare -- b="foo"

You just need to wait for the next release



A feature request regarding redirection to variables

2023-12-17 Thread Luke Tidd
A very common thing I need to do when writing bash is to collect both
the stdout and stderr of a command. This can be done relatively
reasonably with files but it would be very attractive to be able to
redirect these directly to a variable some how.

cmd >@stdout 2>@stderr
exit_code=$?

where "stdout" and "stderr" here are variables.
This or equivalent would be very nice. currently I find myself reusing
this pattern over and over:

err_file="$(mktemp)"
var_stdout="$(cmd 2>"$err_file)"
exit_code=$?
var_stderr="$(<"$err_file")"
rm "$err_file"

and it just doesn't have the same ring to it! Is there a snowballs
chance? Thanks for your time!