如何在Zsh

时间:2016-06-11 06:38:57

标签: bash shell zsh

假设存在以下功能。

action() {
    sleep 1
    echo 'stdout'
    >&2 echo 'stderr'
}

我想将以下每个项目捕获到shell变量中。

  • 标准输出
  • stderr的
  • 执行时间

以下代码仅在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中实现?

0 个答案:

没有答案