如果想將程式執行的訊息輸出到文件檔
ex: ./tools/demo.py > output.txt 2>&1
./tools/demo.py
執行程式
> output.txt
將console message 輸出到 output.txt
2>&1
改變
file descriptor
***
「>」的意思其實是,將「>」左邊輸出的東西重新導向到右邊去。
但不止是這樣而已,系統將標準輸入輸出分成三個:標準輸入 (stdin)、標準輸出 (stdout)、以及標準錯誤輸出 (stderr),它們的 fd (file descriptor, 檔案描述子) 分別是 0、1、2。
當「>」左邊未指定任何東西時,它會讀取左方程式的標準輸出 (也就是 fd=1) 重新導向給右邊的東西,但是你也可以指定要重新導向的 fd (也就是說「>abc.txt」會等於「1>abc.txt」)。所以可以想見 2>&1 的意思應該是把 fd=2,也就是標準錯誤輸出重新導向給 &1。而這邊的 &1 指的其實就是 fd=1。
沒有留言:
張貼留言