linux下的shell輸入輸出重新導向__linux

來源:互聯網
上載者:User
shell上:
0表示標準輸入,從終端輸入資料,一般指鍵盤
1表示標準輸出,資料顯示到終端,一般指螢幕
2表示標準錯誤輸出,錯誤提示顯示到終端,一般指螢幕
> 預設為標準輸出重新導向,與 1> 相同

2>&1 意思是把 標準錯誤輸出 重新導向到 標準輸出.

2>1表示把標準錯誤重新導向到檔案1中去,用&區分數字表示的是檔案名稱還是檔案描述符

&>file 意思是把 標準輸出 和 標準錯誤輸出 都重新導向到檔案file中


<,<< ,>,>>區別

""<"表示輸入重新導向運算子,">"表示輸出重新導向t運算子。

"<<"這種輸入告訴Shell,當前標準輸入來自命令列的開始標記 tag 和結束標記 tag 之間的內容作為輸入。

">"輸出時,如果檔案不存在會自動建立一個檔案,如果第二次輸入時,會覆蓋前一次的輸入內容。

">>"表示把第二次的輸出內容追加到檔案中去,而不是覆蓋。



ps ef > a.txt  把ps命令的執行結果重新導向到a.txt檔案中,而不在螢幕上顯示了。

wc<a.txt     wc原本直接統計從終端輸入的文本行資訊(行數,單詞數,字元數),這裡將輸入重新導向為a.txt檔案


例子1 <<

pp@pp-Satellite-L700~$ cat << EOF> hello> what?> ok> bye> EOFhellowhat?okbyepp@pp-Satellite-L700$ cat >test.txt << EOF> hello> what?> ok> bye> EOFpp@pp-Satellite-L700$ cat test.txt hellowhat?okbye
第一條命令:cat <<EOF, 表示以EOF為結束標識,在這之間的內容全部作為輸入傳送給cat
第二條命令:cat > test.txt << EOF, 先將cat的輸出重新導向到檔案test.txt,再將輸入重新導向到命令列端以EOF為結束標記間的內容。等價於cat 1>test.txt 0<< EOF 和cat 0<<EOF 1>test.txt

例子2:
注意,為了方便理解,必須設定一個環境使得執行grep da*命令會有正常輸出和錯誤輸出,然後分別使用下面的命令產生三個檔案:
grep da * > greplog1
grep da * > greplog2 1>&2   
grep da * > greplog3 2>&1  //grep da * 2>greplog4 1>&2 結果一樣
#查看greplog1會發現裡面只有正常輸出內容
#查看greplog2會發現裡面什麼都沒有

#查看greplog3會發現裡面既有正常輸出內容又有錯誤輸出內容


例子3:

ls 1>/dev/null 2>/dev/null

/dev/null是一個特殊檔案裝置,所有的輸入都將會被拋棄掉。常用來過濾掉不想看到的輸出。


參考:

http://blog.sina.com.cn/s/blog_406127500102uxrs.html

http://blog.csdn.net/jfkidear/article/details/7823486

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.