linux標準輸入輸出錯誤輸出

2021-07-06 08:25:12 字數 753 閱讀 8091

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>&1

Linux 標準輸入 輸出 錯誤

1 檔案描述符 檔案檔案描述符 輸入檔案 0 輸出檔案 1 錯誤輸出檔案 2 2 將標準輸出和錯誤輸出重定向到同乙個檔案 2 1 usr bin bashname kevinecho nameipconfigkevin kevin mybash test.sh run.log.test.sh lin...

Linux的標準輸入 輸出,錯誤

以前經常看到 1,2這樣的符號,但是不知道是什麼意思。系統中有12個檔案描述符,0,1,2是標準輸入,輸出和錯誤。可以任意使用檔案描述符3到9 檔案檔案描述符 輸入檔案 標準輸入 0輸出檔案 標準輸出 1錯誤輸出檔案 標準錯誤2 標準輸入 0 預設是鍵盤輸入,也可以是檔案或其他命令的輸出 標準輸出 ...

linux標準輸入輸出及錯誤輸出

linux shell 環境中支援輸入輸出重定向,用符號 和 來表示。0 1和2分別表示標準輸入 標準輸出和標準錯誤資訊輸出,可以用來指定需要重定向的標準輸入或輸出,比如 2 a.txt 表示將錯誤資訊輸出到檔案a.txt中。同時,還可以在這三個標準輸入輸出之間實現重定向,比如將錯誤資訊重定向到標準...