檔案描述符 (FD) 為 0~9 整數,預設開啟三個標準串流:0=stdin、1=stdout、2=stderr。掌握重導向語法,能靈活控制程式輸入輸出流向。
| 語法 | 說明 |
|---|---|
> filename | 截斷檔案為 0 長度;不存在則建立空檔 |
command 1 > filename | 標準輸出重導向至檔案 |
command 2 > filename | 標準錯誤重導向至檔案 |
command > filename 2>&1(等價 command &> filename) | 標準輸出與標準錯誤合併重導向至檔案 |
command >&m | 標準輸出重導向至檔案描述符 m |
command <&- | 關閉標準輸入 |
n<&m | 將 FD=m 的輸入複製至 FD=n |
n>&- | 關閉 FD=n 的輸出 |
n<&- | 關閉 FD=n 的輸入 |
n <> filename | 以讀寫模式開啟檔案並指派 FD=n;不存在則建立 |
記憶技巧:& 視為「取址」,0~9 為 FD 陣列索引,&m 即取陣列第 m 個 FD;單獨 & 代表 stdout 與 stderr 合併。此為助記觀念,非正式定義。