在 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