shell程序中2> /dev/null代表什麼意思?


想知道這個什麼意思,首先需要了解幾個知識點:

標準輸入0 從鍵盤獲得輸入 /proc/self/fd/0

標準輸出1 輸出到屏幕(即控制台) /proc/self/fd/1

錯誤輸出2 輸出到屏幕(即控制台) /proc/self/fd/2

/dev/null代表linux的空設備文件,所有往這個文件裡面寫入的內容都會丟失,俗稱「黑洞」

1、2>/dev/null意思就是把錯誤輸出到「黑洞」

2、>/dev/null 2>&1默認情況是1,也就是等同於1>/dev/null 2>&1。意思就是把標準輸出重定向到「黑洞」,還把錯誤輸出2重定向到標準輸出1,也就是標準輸出和錯誤輸出都進了「黑洞」

3、2>&1 >/dev/null意思就是把錯誤輸出2重定向到標準出書1,也就是屏幕,標準輸出進了「黑洞」,也就是標準輸出進了黑洞,錯誤輸出列印到屏幕 關於這裡」&」的作用,我們可以這麼理解2>/dev/null重定向到文件,那麼2>&1,這裡如果去掉了&就是把錯誤輸出給了文件1了,用了&是表明1是標準輸出。


謝邀

意思就是把標準錯誤流(stderr)重定向到設備/dev/null上。

/dev/null是類Unix系統中的一個特殊文件設備,他的作用是接受一切輸入它的數據並丟棄這些數據。通常被當做垃圾桶來用。

將輸出流重定向到它上面,就是丟棄這個輸出流上的所有輸出。

嘗試從/dev/null上讀取數據,會得到一個EOF。

順便,類Unix系統中,0代表標準輸出流(stdin),1代表標準輸出流(stdout),2代表標準錯誤劉(stderr)。

直白的說就是把執行過程中不想看到的輸出信息丟到垃圾桶里去。覺得有用的話給個贊吧,比心。


表示空設備。在/dev目錄下的都是設備映射文件,在linux中,設備驅動將各種外設都映射成了文件。null設備就是空設備,若指定將數據輸出到該設備上,則表示啥也不輸出的意思。


謝謝邀請。

雖然本人是自動化專業畢業的,但是對於編程這個東西已經丟棄多年。

這個程序的意思是輸出到空,就是把2里的數據扔了,具體2是什麼,沒有其他程序內容的情況下我也看不懂。


推薦閱讀:

如何簡單地理解Python中的if __name__ == __main__
「hello world」很重要,但是與寫出它的語言無關。
perl_fsync_two_folder
Rail詳解
Python的基本數據類型--Dictionary

TAG:編程語言 | 科技 |