shell重定向輸入

2021-10-03 10:16:19 字數 805 閱讀 6867

這條命令的作用是將標準輸出1重定向到/dev/null中。

/dev/null代表linux的空裝置檔案,所有往這個檔案裡面寫入的內容都會丟失,俗稱「黑洞」。那麼執行了》/dev/null之後,標準輸出就會不再存在,沒有任何地方能夠找到輸出的內容。

錯誤輸出將會和標準輸出輸出到同乙個地方,linux在執行shell命令之前,就會確定好所有的輸入輸出位置,並且從左到右依次執行重定向的命令,所以》/dev/null

2>&1的作用就是讓標準輸出重定向到/dev/null中(丟棄標準輸出),然後錯誤輸出由於重用了標準輸出的描述符,所以錯誤輸出也被定向到了/dev/null中,錯誤輸出同樣也被丟棄了。執行了這條命令之後,該條shell命令將不會輸出任何資訊到控制台,也不會有任何資訊輸出到檔案中。

乍眼看這兩條命令貌似是等同的,但其實大為不同。剛才提到了,linux在執行shell命令之前,就會確定好所有的輸入輸出位置,並且從左到右依次執行重定向的命令。那麼我們同樣從左到右地來分析2>&1> /dev/null:2>&1,將錯誤輸出繫結到標準輸出上。由於此時的標準輸出是預設值,也就是輸出到螢幕,所以錯誤輸出會輸出到螢幕。dev/null,將標準輸出1重定向到/dev/null中。。

我們用**來比較這兩個之間的差別:

我們用乙個**來更好地說明這兩條命令的區別:

命令標準輸出

錯誤輸出

>/dev/null 2>&1

丟棄丟棄

2>&1 >/dev/null

丟棄螢幕

shell中輸入重定向,輸出重定向,管道

什麼是檔案描述符 1 程序中開啟乙個檔案就會有乙個檔案描述符 2 檔案描述符是乙個非負整數 3 系統為每乙個程序維護乙個檔案描述符表 程序級檔案描述符 4 同乙個程序裡面不同檔案描述符可以對應同乙個檔案 乙個檔案被開啟多次 5 不同程序的檔案描述符可以相同 不影響 可以指向同乙個檔案,也可以指向不同...

Shell 輸入 輸出重定向

大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...

Shell 輸入 輸出重定向

大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...