輸入輸出解釋 當我們執行shell的時候,每個進程都和三個打開的文件有關係,並使用文件描述符來引用這些文件。但這些文件不容易記憶,所以shell給了相應的文件名: 0:輸入文件-標準輸入(它的命令是輸入,預設是鍵盤,也可以是文件或者其他命令的輸出) 1:輸出文件-標準輸出(它的命令是輸出,預設是屏幕 ...
輸入輸出解釋
當我們執行shell的時候,每個進程都和三個打開的文件有關係,並使用文件描述符來引用這些文件。但這些文件不容易記憶,所以shell給了相應的文件名:
- 0:輸入文件-標準輸入(它的命令是輸入,預設是鍵盤,也可以是文件或者其他命令的輸出)
- 1:輸出文件-標準輸出(它的命令是輸出,預設是屏幕,也可以是文件)
- 2:錯誤輸出文件-標準輸出(它的命令是錯誤的輸出,預設是屏幕,也可以是文件)(或許會有疑問,為什麼會定義錯誤輸出,因為很多人喜歡把錯誤單獨輸出,或者在處理大數據文件時,可能產生很多的錯誤,所以定義了此命令)
文件重定向
在執行命令的時候,可以指定命令的輸入,輸出和錯誤,要實現這個, 就必須使用文件重定向。
在對標準錯誤進行重定向時,必須使用文件描述符,但是對於標準輸入和輸出來說,則不是必須的。
下麵是幾種寫法的案列:
- command > filename 把把標準輸出重定向到一個新文件中
- command >> filename 把標準輸出重定向到一個文件中(追加)
- command 1 > fielname 把標準輸出重定向到一個文件中
- command > filename 2>&1 把標準輸出和標準錯誤一起重定向到一個文件中
- command 2 > filename 把標準錯誤重定向到一個文件中
- command 2 >> filename 把標準輸出重定向到一個文件中(追加)
- command >> filename 2>&1 把標準輸出和標準錯誤一起重定向到一個文件中(追加)
-
command < filename >filename2 把c o m m a n d命令以f i l e n a m e文件作為標準輸入,以f i l e n a m e 2文件作為標準輸出
-
command < filename 把c o m m a n d命令以f i l e n a m e文件作為標準輸入
- command << delimiter 把從標準輸入中讀入,直至遇到d e l i m i t e r分界符
- command <&m 把文件描述符m作為標準輸入
- command >&m 把標準輸出重定向到文件描述符m中
- command <&- 把關閉標準輸入