Linux

如何查看來自哪個文件描述符輸出?

  • April 13, 2019

如何查看來自哪個文件描述符輸出?

$迴聲你好 
你好 
$迴聲你好1>&2 
你好

都去 /dev/pts/0

但有 3 個文件描述符 0,1,2

普通輸出發生在文件描述符 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在您的情況下),除非如上所示重定向到其他地方。

引用自:https://unix.stackexchange.com/questions/464754