Linux 輸出重定向 2>&1 , 1>&2

林西索發表於2024-05-05

在 shell 程式中,最常使用的 FD (file descriptor) 大概有三個, 分別是:

0 是一個檔案描述符,表示標準輸入(stdin)
1 是一個檔案描述符,表示標準輸出(stdout)

2 是一個檔案描述符,表示標準錯誤(stderr)

在標準情況下, 這些FD分別跟如下裝置關聯:
stdin(0): keyboard 鍵盤輸入,並返回在前端
stdout(1): monitor 正確返回值 輸出到前端
stderr(2): monitor 錯誤返回值 輸出到前端

1>&2 正確返回值傳遞給2輸出通道 &2表示2輸出通道
如果此處錯寫成 1>2, 就表示把1輸出重定向到檔案2中.
2>&1 錯誤返回值傳遞給1輸出通道, 同樣&1表示1輸出通道.

>是重定向符,就是把前面輸出的內容重定向到後面指定的位置

echo "一些內容" > filename.txt

>前是可以加數字來說明把什麼內容重定向到檔案中,預設是把標準輸出重定向到檔案中,所以下面這個例子和上面那個是一樣的(例2):

echo "一些內容" 1> filename.txt

& 是一個描述符,如果1或2前不加&,會被當成一個普通檔案。

1>&2 意思是把標準輸出重定向到標準錯誤.

2>&1 意思是把標準錯誤輸出重定向到標準輸出。

&>filename 意思是把標準輸出和標準錯誤輸出都重定向到檔案filename

轉載:https://www.cnblogs.com/bluestorm/p/10754821.html

相關文章