天天看點

Shell标準輸出、标準錯誤 >/dev/null 2>&1

shell中可能經常能看到:>/dev/null 2>&1 

eg:kill -9 <code>ps -elf |grep -v grep|grep $1|awk '{print $4}'</code> 1&gt;/dev/null 2&gt;/dev/null

指令的結果可以通過%&gt;的形式來定義輸出

幾個基本符号及其含義:

那麼本文标題的語句:

腳本隻使用标準輸入、标準輸出和标準錯誤

Shell會自動為我們打開和關閉0、1、2這三個檔案描述符,我們不需要顯式地打開或關閉它們。标準輸入是指令的輸入,預設指向鍵盤;标準輸出是指令的輸出,預設指向螢幕;标準錯誤是指令錯誤資訊的輸出,預設指向螢幕。

如果沒有顯式地進行重定向,指令通過檔案描述符0從螢幕讀取輸入,通過檔案描述符1和2将輸出和錯誤資訊輸出到螢幕。但如果我們想從其他檔案(再次強調,I/O裝置在Unix/Linux中也是檔案)讀取輸入或産生輸出,就需要對0、1、2使用重定向了。其文法如下:

重定向的使用有如下規律:

1)标準輸入0、輸出1、錯誤2需要分别重定向,一個重定向隻能改變它們中的一個。

2)标準輸入0和标準輸出1可以省略。(當其出現重定向符号左側時)

3)檔案描述符在重定向符号左側時直接寫即可,在右側時前面加&amp;。

4)檔案描述符與重定向符号之間不能有空格!

      本文轉自ling118 51CTO部落格,原文連結:http://blog.51cto.com/meiling/2057676,如需轉載請自行聯系原作者

繼續閱讀