由于某种原因,在以下bash脚本中,似乎stderr被发送到了stdout:
exec > >( while read line; do echo " stdout: $line"; done )
exec 2> >( while read line; do echo " stderr: $line"; done )
echo "rolo"
echo "cholo" >&2
如果你运行这段代码,输出结果如下:
标准输出:rolo
标准错误:cholo
有人知道为什么会这样吗?据我所知,发生的情况是stderr被发送到了stdout,这就是为什么第一行捕获了第二行的输出。