出于某种原因,似乎 stderr 在以下 bash 脚本中被发送到 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,这就是第一行捕获第二行输出的原因?