shell重定向使用

2021-06-26 10:25:30 字數 1051 閱讀 4985

2>&1使用

一 相關知識

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。如果你需要關閉標準輸入用<&-; >&- 被用來關閉標準輸出。

Nginx位址重定向使用

nginx位址重定向使用 在使用nginx作為伺服器時,經常遇到的需求就是對位址進行重定向 301重定向 而重定向可以解決很多伺服器應用需求,而且nginx實現這一切都比較簡單。那麼,我們常見的重定向有哪些?這裡我就羅列幾個常見的需求 http重定向到https www自動補全 redirect對h...

shell重定向輸入

這條命令的作用是將標準輸出1重定向到 dev null中。dev null代表linux的空裝置檔案,所有往這個檔案裡面寫入的內容都會丟失,俗稱 黑洞 那麼執行了 dev null之後,標準輸出就會不再存在,沒有任何地方能夠找到輸出的內容。錯誤輸出將會和標準輸出輸出到同乙個地方,linux在執行sh...

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

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