如何查看来自哪个文件描述符的输出?

如何查看来自哪个文件描述符的输出?

如何查看来自哪个文件描述符的输出?

$ 回声你好  
你好  
$ 回显你好 1>&2  
你好

全部都去 /dev/pts/0
但有 3 个文件描述符 0,1,2

答案1

普通输出发生在文件描述符 1(标准输出)上。诊断输出以及用户交互(提示等)发生在文件描述符 2(标准错误)上,输入进入文件描述符 0(标准输入)上的程序。

标准输出/错误的输出示例:

echo 'This goes to stdout'
echo 'This goes to stderr' >&2

在上面的两个实例中,echo写入标准输出,但在第二个命令中,命令的标准输出被重定向到标准错误。

过滤(删除)一个或另一个(或两个)输出通道的示例:

{
    echo 'This goes to stdout'
    echo 'This goes to stderr' >&2
} >/dev/null   # stderr will still be let through

{
    echo 'This goes to stdout'
    echo 'This goes to stderr' >&2
} 2>/dev/null   # stdout will still be let through

{
    echo 'This goes to stdout'
    echo 'This goes to stderr' >&2
} >/dev/null 2>&1   # neither stdout nor stderr will be let through

输出流连接到当前终端(/dev/pts/0在您的情况下),除非重定向到其他地方(如上所示)。

相关内容