为什么命令可以{ echo err >&2; echo out >&1; } | :
打印“err”,而第二个命令却不能?
容器中的一些测试:
这也发生在主机 CentOS 8.0.1905、Debian 11.4 中。
~# { echo err >&2; echo out >&1; } | :
err
~# { echo out >&1; echo err >&2; } | :
~#
Run Code Online (Sandbox Code Playgroud)
不使用:
似乎是正确的:
~# { echo out >&1; echo err >&2; } | sed 's/.*/-&-/'
err
-out-
~#
Run Code Online (Sandbox Code Playgroud)
但在另一台主机CentOS 7.7.1908(bash/4.2.46)中打印:
~# { echo out >&1; …
Run Code Online (Sandbox Code Playgroud)