假设存在以下功能。
action() {
sleep 1
echo 'stdout'
>&2 echo 'stderr'
}
我想将以下每个项目捕获到shell变量中。
以下代码仅在Bash中起作用。
unset stdout stderr time
eval "$(
{ time action >&3 2>&4; } \
2> >(time=$(cat); typeset -p time) \
3> >(stdout=$(cat); typeset -p stdout) \
4> >(stderr=$(cat); typeset -p stderr)
)"
echo "stdout: $stdout"
echo "stderr: $stderr"
echo "time: $time"
我们如何在Zsh中实现?