Bash輸入輸出重定向

2021-06-18 00:33:15 字數 1918 閱讀 9598

[隱藏]

7參考資料

檔案描述符(file descriptor),是程序對其所開啟檔案的索引,形式上是個非負整數。類 unix 系統中,常用的特殊檔案描述符如下:

檔案描述符

名稱常用縮寫

預設值0

標準輸入

stdin鍵盤1

標準輸出

stdout螢幕2

標準錯誤輸出

stderr螢幕

我們在簡單地用 (下面會詳細介紹)。

管道 (「|」, pipe line),把上乙個命令的 stdout 接到下乙個命令的 stdin;

tee 命令的作用是在不影響原本 i/o 的情況下,將 stdout 複製乙份到檔案去;

把cmd命令的輸出重定向到檔案file中。如果file已經存在,則清空原有檔案,使用bash的

noclobber選項可以防止覆蓋原有檔案。

把cmd命令的輸出重定向到檔案file中,如果file已經存在,則把資訊加在原有檔案後面。

使cmd命令從file讀入

從命令列讀取輸入,直到乙個與text相同的行結束。除非使用引號把輸入括起來,此模式將對輸入內容進行shell變數替換。如果使用 <

把word(而不是檔案word)和後面的換行作為輸入提供給cmd。

以讀寫模式把檔案file重定向到輸入,檔案file不會被破壞。僅當應用程式利用了這一特性時,它才是有意義的。

功能同》,但即便在設定了

noclobber時也會覆蓋file檔案,注意用的是|而非一些書中說的!,目前僅在csh中仍沿用》!實現這一功能。

使用檔案描述符的重定向都使用了&符號。

cmd >&n

把輸出送到檔案描述符n

cmd m>&n

把輸出 到檔案符m的資訊重定向到檔案描述符n

cmd >&-

關閉標準輸出

cmd

輸入來自檔案描述符n

cmd m

m來自檔案描述各個n

cmd

關閉標準輸入

cmd

移動輸入檔案描述符n而非複製它。(需要解釋)

cmd >&n-

移動輸出檔案描述符 n而非複製它。(需要解釋)

注意:>&實際上覆制了檔案描述符,這使得

ls > dirlist 2>&1與

ls 2>&1 > dirlist的效果不一樣。

man bash的redirection節中提及了這段內容。

cmd 2>file

把檔案描述符2重定向到file,即把錯誤輸出存到file中。

cmd > file 2>&1

把標準錯誤重定向到標準輸出,再重定向到file,即stderr和stdout都被輸出到file中

cmd &> file

功能與上乙個相同,更為簡便的寫法。

cmd >& file

功能仍與上乙個相同。

cmd > f1 2>f2

把stdout重定向到f1,而把stderr重定向到f2

tee files

把stdout原樣輸出的同時,複製乙份到files中。

tee files

把stderr和stdout都輸出到files中,同時輸出到螢幕。

template:bash重定向例項

下面的一些用法並不屬於重定向的範疇,但和重定向較為類似。

bash在某些系統中的特性,可以將輸入輸出轉到另乙個程式中去,可以同時輸出個多個程式,使用方法(list)或

wget

-o - \

|tee>

(sha1sum > ***.sha1) \

>

(md5sum > ***.md5) \

> ***.iso

巧妙地同時完全了sha-1和md5校驗工作。

↑tee invocation

Bash的輸入輸出重定向

此頁由linux wiki使用者 chenxing於2012年7月21日 星期六 20 55的最後更改。隱藏 7參考資料 檔案描述符 file descriptor 是程序對其所開啟檔案的索引,形式上是個非負整數。類 unix 系統中,常用的特殊檔案描述符如下 檔案描述符 名稱 常用縮寫 預設值 0...

輸入輸出重定向

使用標準輸入流,標準輸出流和標準錯誤流,這些標準流都被預分配給鍵盤和顯示器。在需要的時候,可以使用重定向臨時改變這些預設分配。重定向是這樣一種過程,我們借助它指定乙個用於替代某個 標準檔案的檔案。輸入重定向 可以將標準輸入從鍵盤重定向到任何文字檔案。輸入重定向運算子為小於號 意味著該命令從此給 派的...

輸入輸出重定向

1.標準輸入的控制 語法 命令 檔案將檔案做為命令的輸入。例如 mail s mail test wesongzhou hotmail.com file1 將檔案file1 當做信件的內容,主 題名稱為mail test,送給收信人。2.標準輸出的控制 語法 命令 檔案將命令的執行結果送至指定的檔案...