Linux在啟動后,會默認打開3個文件操作符,分別是
(1)標准輸入0,standard input
(2)正確輸出1,standard output
(3)錯誤輸出2,standard error
對於一條Linux命令執行的過程是:
(1)首先存在一個輸入:可以從鍵盤輸入,也可以從文件輸入
(2)若命令成功執行,將會把結果輸出到屏幕上(默認是輸出到屏幕的)
(3)若命令執行失敗,同樣會把結果輸出到屏幕上(默認也是輸出到屏幕的)
在使用的過程中,有時不希望把結果輸出到屏幕上,而是希望輸出到文件或其他設備上,這是就需要使用所謂的數據重定向。
Linux下的輸入輸出操作符:
(1)標准輸入(stdin):0,使用<或<<
(2)正確輸出(stdout):1,使用>或>>
(3)錯誤輸出(stderr):2,使用2>或2>>
注意,其中<或>表示覆蓋,<<或>>表示追加
輸出重定向
1. 已知test.sh存在,而test1.sh不存在
此時,正確輸出和錯誤輸出都顯示在屏幕上!
2. 要求,把正確輸出寫入文件stdout.txt中,錯誤輸出顯示在屏幕上
3. 要求,把錯誤輸出寫入文件stderr.txt中,正確輸出顯示在屏幕上
4. 要求,把正確輸出和錯誤輸出都寫入統一文件stdall.txt中
5. 要求,將錯誤信息關閉,使用的是2>&-
6. 要求,將所有的輸出信息都關閉,使用的是1>&- 2>&-
擴展:“> file 2>&1”與 “2>&1 > file”的區別
(1)“> file 2>&1”,將正確輸出和錯誤輸出都重定向到文件file中
(2)“2>&1 > file”,將錯誤輸出顯示在屏幕上,將正確輸出重定向到文件file中
輸入重定向
1. 從鍵盤獲得數據,按下【Ctrl】+d即可保存離開
2. 以給定字符作為結束
3. 從文件file獲取數據