Linux shell標准輸入,標准輸出,錯誤輸出


文件文件描述符
標准 輸入 是文件描述符 0 。它是命令的輸入,缺省是鍵盤,也可以是文件或其他命令的輸出。
標准 輸出 是文件描述符 1 。它是命令的輸出,缺省是屏幕,也可以是文件。
標准 錯誤 是文件描述符 2 。這是命令錯誤的輸出,缺省是屏幕,同樣也可以是文件。
重定向的使用有如下規律:
1)標准輸入0、輸出1、錯誤2需要分別重定向,一個重定向只能改變它們中的一個。
2)標准輸入0和標准輸出1可以省略。(當其出現重定向符號左側時)
3)文件描述符在重定向符號左側時直接寫即可,在右側時前面加&。
4)文件描述符與重定向符號之間不能有空格!
command < filename                         把標准輸入重定向到filename文件中
command 0< filename                       把標准輸入重定向到filename文件中

 

command > filename                         把標准輸出重定向到filename文件中(覆蓋)
command 1> fielname                       把標准輸出重定向到filename文件中(覆蓋)

 

command >> filename                       把標准輸出重定向到filename文件中(追加)
command 1>> filename                     把標准輸出重定向到filename文件中(追加)

 

command 2> filename                       把標准錯誤重定向到filename文件中(覆蓋)
command 2>> filename                     把標准輸出重定向到filename文件中(追加)

 

command > filename 2>&1               把標准輸出和標准錯誤一起重定向到filename文件中(覆蓋)
command >> filename 2>&1             把標准輸出和標准錯誤一起重定向到filename文件中(追加)

 

command < filename >filename2        把標准輸入重定向到filename文件中,把標准輸出重定向
                                                        到filename2文件中
command 0< filename 1> filename2   把標准輸入重定向到filename文件中,把標准輸出重定向
                                                        到filename2文件中

 

下面還幾種不常見的用法:
n<&- 表示將 n 號輸入關閉
<&- 表示關閉標准輸入(鍵盤)
n>&- 表示將 n 號輸出關閉
>&- 表示將標准輸出關閉 
/dev/null 代表空設備文件
  • 1>/dev/null 首先表示標准輸出重定向到空設備文件,也就是不輸出任何信息到終端,說白了就是不顯示任何信息。
  • 2>&1 接着,標准錯誤輸出重定向等同於標准輸出,因為之前標准輸出已經重定向到了空設備文件,所以標准錯誤輸出也重定向到空設備文件。

1 表示 stdout 標准輸出,系統 默認值是1 ,所以">/dev/null" 等同於 " 1 >/dev/null"
2 表示 stderr 標准錯誤 & 表示等同於 的意思,2>&1,表示2的輸出重定向等同於1,即和1重定向的文件系統上的位置是一樣的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM