shell學習筆記之九(重新導向)

來源:互聯網
上載者:User

標籤:shell   重新導向   

重新導向    概念:        將預設的輸入輸出改成其他的輸入輸出    檔案標識符        linux使用0-9指明特定進程相關的資料流,系統在啟動一個進程的時候會為該進程開啟三個檔案:標準輸入(stdin),標準輸出(stdout),標準錯誤輸出,分別使用檔案標識符0,1,2來標識,如果要為進程開啟其他的輸入輸出,則需要從整數3開始標識。預設情況下,標準輸入為鍵盤,標準輸出和錯誤輸出為顯示器    I/O重新導向        1、標準輸出覆蓋重新導向(>)            ls -l > test.txt            注意:如果指定的檔案不存在,則命令會先建立檔案            上述命令相當於:ls -l 1>test.txt            ls -l /usr/noExist 2> ls_noExist_err.txt            錯誤重新導向輸出            如果命令的輸出既有標準輸出,又有錯誤標準輸出,則可以分別指定不同標識符的內容            COMMAND 1> stdout.txt 2> stderr.txt         2、標準輸出追加重新導向(>>)            和>的用法一致,只是這個是追加,不會清空原檔案        3、標識輸出重新導向(>&)            標準輸出重新導向的作用是將一個標識的輸出重新導向到另一個標識的輸入。            例:將標準輸出和標準錯誤輸出同時重新導向到一個檔案                COMMAND > test.txt 2>&1                如果不關心錯誤輸出                    COMMAND > test.txt 2> /dev/null #/dev/null是一個特殊裝置,像一個黑洞        4、標準輸入重新導向 <        5、管道(|)        6、exec            exec是shell的內建命令,        7、Here Document            用於在命令中按行輸入文本,格式為<<delimiter,其中delimiter是一個用於標註的分割符,該分割符後所有的輸入都被當作是輸入的文本,直到出現下一個分隔字元。             這個的功能的出現主要是因為Ctrl+D輸入完成的訊號在互動環境下是可以的,但是在指令碼中卻無法使用。            例:                #cat here.txt                line1                line2                line3                line4                #現在想要在here.txt的第三行插入一個新行                #!/bin/bash                ed here.txt <<END                3                d                i                this is new line3                .                wq                END                #cat here.txt                 line1                line2                this is new line3                line4                也就是說,我們把要在終端輸入的命令全部寫道一個檔案裡,這個檔案相當於類比我們的鍵盤輸入                #對一串輸入字元排序                #!/bin/bash                sort <<END                sdt                t                dsaj                dsg                fdg                we                gh                avf                END                這樣就可以在任何時候任何時間對這些字串進行排序了。空格:    1、test 測試比較時,操作符兩側要有空格      2、if [] ,if 和 [] 之間要有空格    3、[ expression ]  expression兩側要有空格    4、算數運算和賦值沒有空格    5、while與之後的expression有空格    如:while expression

shell學習筆記之九(重新導向)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.