首頁 > 軟體

標準IO和重定向

2020-06-16 17:56:44

1、標準輸入/輸出/錯誤

當shell啟動,它繼承三個檔案:stdin、stdout、stderr,標準輸入通常來自鍵盤,標準輸出和標準錯誤通常是螢幕。
標準輸入/輸出/錯誤的檔案描述符為0、1、2

2、重定向操作符

<                    重定向輸入

<&                重定向輸入,後接數位格式的檔案描述符

>                    重定向輸出

>>                  追加輸出

2>                  重定向錯誤

&>                  重定向錯誤和輸出,後接檔名

>&                 重定向錯誤和輸出,後接檔名或數位格式的檔案描述符

2>&1            重定向標準錯誤到標準輸出 

1>&2            重定向標準輸出到標準錯誤

>|                   重定向輸出時覆蓋noclobber,即如果檔案存在直接覆蓋檔案

<>filename  如果是一個裝置檔案,就把這個檔案作為標准輸入和標準輸出

3、例子

1) 將標準錯誤重定向到檔案
$cc prog.c 2>errfile

2) 將標準輸出重定向到檔案,標準錯誤重定向到空裝置檔案
$cc prog.c >logfile 2>/dev/null

3) 將標準輸出和標準錯誤都定向到檔案或檔案描述符
$cc prog.c &> logfile //必須是檔名
$cc prog.c >& logfile //可以是檔名或數位格式的檔案描述符
$cc prog.c >& 1 //將標準輸出和標準錯誤重定向到標準輸出,標準輸出的檔案描述符為1

4) 將標準輸出重定向到檔案,將標準錯誤重定向到標準輸出定向的裝置
$cc prog.c >logfile 2>&1
等效於
$cc prog.c >& logfile 

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-08/120880.htm


IT145.com E-mail:sddin#qq.com