什么是標準輸出和錯誤輸出?
比如我們現(xiàn)在有一個文件肴掷,我用ls -l查看它的創(chuàng)建時間碌廓、文件大小传轰、權(quán)限等信息:
$ ls -l test
-rw-rw-rw- 1 yf yf 0 Jun 9 10:27 test #這一行就是標準輸出信息
反之,如果我查看的是一個不存在的文件:
$ ls -l file
ls: cannot access 'file': No such file or directory #這一行就是錯誤輸出谷婆,也就是我們常說的“報錯”
什么是輸出重定向慨蛙?
輸出重定向辽聊,就是上面執(zhí)行代碼后,屏幕上出現(xiàn)的文字存到一個文件里期贫。這里有幾種重定向的符號:
比如把上面的屏幕輸出存到一個文件里:
$ ls -l file.txt > logout.txt #重定向后跟匆,屏幕就不會再有輸出了
$ cat logout.txt
-rw-rw-rw- 1 yf yf 0 Jun 9 10:27 file.txt
$ ls -l file2.txt 2> logout_error.txt #把錯誤輸出存到一個文件里
$ cat logout_error.txt
ls: cannot access 'file2.txt': No such file or directory
在平時我們進行數(shù)據(jù)分析的時候,如果某個軟件運行會產(chǎn)生大量的輸出信息通砍,而你又不想看見玛臂,你就可以用重定向把這些信息都存到一個文件里;另外封孙,錯誤輸出的重定向方便我們在程序運行錯誤的時候迹冤,查找是哪里出了問題。有的軟件運行的時候虎忌,標準輸出和錯誤輸出全都混在一起泡徙,查錯非常的不方便,用重定向這個方法可以明顯的提高工作效率膜蠢。
關(guān)于上面表格里最后一種用法:2>&1堪藐,這個命令是要寫在最后的。
例如:command > logoutfile 2>&1
具體原因請看:linux shell 中"2>&1"含義