歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> 新手學堂:談Linux Shell下的輸出重定向

新手學堂:談Linux Shell下的輸出重定向

日期:2017/3/2 16:54:23   编辑:SHELL編程
 Linux Shell 環境中支持輸入輸出重定向,用符號"<"和">"來表示。0、1和2分別表示標准輸入、標准輸出和標准錯誤信息輸出,可以用來指定需要重定向的標准輸入或輸出,比如 2>a.txt 表示將錯誤信息輸出到文件a.txt中。
 
  同時,還可以在這三個標准輸入輸出之間實現重定向,比如將錯誤信息重定向到標准輸出,可以用 2>&1來實現。
 
  Linux下還有一個特殊的文件/dev/null,它就像一個無底洞,所有重定向到它的信息都會消失得無影無蹤。這一點非常有用,當我們不需要回顯程序的所有信息時,就可以將輸出重定向到/dev/null.
 
  如果想要正常輸出和錯誤信息都不顯示,則要把標准輸出和標准錯誤都重定向到/dev/null, 例如:
 
  # ls 1>/dev/null 2>/dev/null
 
  還有一種做法是將錯誤重定向到標准輸出,然後再重定向到 /dev/null,例如:
 
  # ls >/dev/null 2>&1
 
  注意:此處的順序不能更改,否則達不到想要的效果,此時先將標准輸出重定向到 /dev/null,然後將標准錯誤重定向到標准輸出,由於標准輸出已經重定向到了/dev/null,因此標准錯誤也會重定向到/dev/null,於是一切靜悄悄:-)
 
  另外+:
 
  make >& make_log
 
  意思是把標准輸出和錯誤輸出都重定向, make>out 只重定向標准輸出!!!!!
 
 >log 表示把標准輸出重新定向到文件log中
 >& log 表示把標准輸出和錯誤輸出都定向到文件log中,相當於 >log 2>&

Copyright © Linux教程網 All Rights Reserved