Linux 輸入輸出重定向

2021-07-27 16:06:11 字數 1251 閱讀 3531



一 相關知識

1)預設地,標準的輸入為鍵盤,但是也可以來自檔案或管道(pipe |)。

2)預設地,標準的輸出為終端(terminal),但是也可以重定向到檔案,管道或後引號(backquotes `)。

3) 預設地,標準的錯誤輸出到終端,但是也可以重定向到檔案。

4)標準的輸入,輸出和錯誤輸出分別表示為stdin,stdout,stderr,也可以用0,1,2來表示。

5)其實除了以上常用的3中檔案描述符,還有3~9也可以作為檔案描述符。3~9你可以認為是執行某個地方的檔案描述符,常被用來作為臨時的中間描述符。

二 例項

1)command 2>errfile           # command的錯誤重定向到檔案errfile。

2)command 2>&1 | ...          #command的錯誤重定向到標準輸出,錯誤和標準輸出都通過管道傳給下個命令。

3)var=`command 2>&1`      # command的錯誤重定向到標準輸出,錯誤和標準輸出都賦值給var。

4)command 3>&2 2>&1 1>&3 | ...       #實現標準輸出和錯誤輸出的交換。

5)var=`command 3>&2 2>&1 1>&3`   #實現標準輸出和錯誤輸出的交換。

6)command 2>&1 1>&2 | ...     (wrong...)      #這個不能實現標準輸出和錯誤輸出的交換。因為shell從左到右執行命令,當執行完2>&1後,錯誤輸出已經和標準輸出一樣的,再執行 1>&2也沒有意義。

三 "2>&1 file"和 "> file 2>&1"區別

1)cat food 2>&1 >file        #錯誤輸出到終端,標準輸出被重定向到檔案file。

2)cat food >file 2>&1        #標準輸出被重定向到檔案file,然後錯誤輸出也重定向到和標準輸出一樣,所以也錯誤輸出到檔案file。

四 注意

通 常開啟的檔案在程序推出的時候自動的關閉,但是更好的辦法是當你使用完以後立即關閉。用m<&-來關閉輸入檔案描述符m,用 m>&-來關閉輸出檔案描述符m。如果你需要關閉標準輸入用<&-; >&- 被用來關閉標準輸出。

五 同時輸出到終端和檔案

copy source dest | tee.exe copyerror.txt

Linux重定向(輸入輸出重定向)

我們知道,linux 中標準的輸入裝置預設指的是鍵盤,標準的輸出裝置預設指的是顯示器。而本節所要介紹的輸入 輸出重定向,完全可以從字面意思去理解,也就是 通常是用檔案或命令的執行結果來代替鍵盤作為新的輸入裝置,而新的輸出裝置通常指的就是檔案。對於輸入重定向來說,其需要用到的符號以及作用如表 1 所示...

linux輸入輸出重定向

基本概念 這是理解後面的知識的前提,請務必理解 a i o重定向通常與 fd有關,shell的fd通常為10個,即 0 9 b 常用fd有3個,為0 stdin,標準輸入 1 stdout,標準輸出 2 stderr,標準錯誤輸出 預設與keyboard monitor有關 c 用 來改變讀進的資料...

Linux輸入輸出重定向

標準輸入輸出 裝置 裝置檔名 檔案描述符 型別鍵盤 dev stdin 0標準輸入 顯示器 dev stdout 1標準輸出 顯示器 dev stderr 2標準錯誤輸出 輸出重定向 輸出重定向符號 1 標準輸出重定向 命令 檔案 以覆蓋方式把命令的正確輸出重定向到檔案或裝置 命令 檔案 以追加的方...