2.1.4.3 命令行 I/O 重定向和管道
將物理文件與程序的邏輯單元號相關聯的另一種方式是重定向或管道輸送預連接的標準 I/O 文件。重定向或管道在運行時執行命令中使用。
採用這種方式,讀取標準輸入(單元 5)和寫入標準輸出(單元 6)或標準錯誤(單元 0)的程序可以通過重定向(在命令行中使用 <、>、>>、>&、|、|&、2>、2>&1),讀取或寫入其他任何命名文件。
參見下表:
表 2–1 csh/sh/ksh 命令行重定向和管道
操作 |
使用 C Shell |
使用 Bourne 或 Korn Shell |
---|---|---|
標準輸入-從 mydata 讀取 |
myprog < mydata |
myprog < mydata |
標準輸出-寫入(覆寫)myoutput |
myprog > myoutput |
myprog > myoutput |
標準輸出-寫入/追加至 myoutput |
myprog >> myoutput |
myprog >> myoutput |
將標準錯誤重定向至文件 |
myprog >& errorfile |
myprog 2> errorfile |
將標準輸出通過管道輸送至另一程序的輸入 |
myprog1 | myprog2 |
myprog1 | myprog2 |
將標準錯誤和輸出通過管道輸送至另一程序 |
myprog1 |& myprog2 |
myprog1 2>&1 | myprog2 |
有關命令行重定向和管道的詳細信息,請參見 csh、ksh 和 sh 手冊頁。
46 關於Linux的I/O重定向
> filename:將標準輸出寫到文件filename之中
< filename:將文件filename的內容讀入到標準輸入之中
>> filename:將標準輸出寫到文件filename之中,若filename文件已存在,則將標準輸出追加到filename已有內容之後
>| filename:即使noclobber選項已開啓,仍然強制將標準輸出寫到文件filename之中,即將filename文件覆蓋掉
n>| filename :即使noclobber選項已開啓,仍然強制將FD爲n的輸出寫到文件filename之中,即將filename文件覆蓋掉
n> filename:將FD爲n的輸出寫到文件filename之中
n< filename :將文件filename的內容讀入到FD n之中
n>> filename:將FD爲n的輸出寫到文件filename之中,若filename文件已存在,則將FD爲n的輸出追加到filename已有內容之後
<<delimiter :此處文檔(Here-document)
n<&m:將FD爲m的輸入複製到FD爲n的文件
n>&-:關閉FD爲n的輸出
n<&-:關閉FD爲n的輸入
&>file:將標準輸出和標準錯誤輸出重定向到文件