天天看點

Linux shell程式設計 12 ---- 管道+I/O重定向

 1 管道簡介

     1 管道技術是Linux的一種基本的程序間通信技術,它利用先進先出排隊模型來指揮程序間的通信。對于管道,我們可以形象的了解為連接配接兩個實體的一個單向連接配接器

     2 Shell程式設計中管道符号是"|",指令直接利用管道進行通信的一般格式

        command1 | command2 | command3 | ... | commandn

        command1~commandn是n個指令,如果沒有管道那麼結果将會直接顯示在Shell中,當Shell遇到管道的時候,就将輸出發送下一個指令

 2 cat和more指令

    1 cat和more指令都是用來顯示檔案的内容,它們的基本格式特比較類似

       cat 選項 檔案

       more 選項 檔案

    2 cat指令的選項名稱及其意義

        選項                 意義

         -a                顯示檔案的所有内容

         -b                由1開始對所有輸出的行數編号,但對空行不編号

         -E                每一行末尾顯示"$"

         -n                由1開始對所有的輸出行進行編号

         -s                當遇到連續的兩行以上的空行時就替換為一行空白行

         -v                不可顯示的字元以可見的形式顯示

    3 more指令的選項名稱及其意義

        選項                  意義

        -num            一次顯示的行數

        -f                  計算行數時,以實際的行數,而非自動換行過後的行數

        -s                 當遇到連續的兩行以上的空行時就替換為一行空白行

        +num           從第num行開始顯示

    4 cat和more指令的最大差別在于,cat指令是不提供分頁功能的,但是more指令是顯示超過一頁的檔案時提供了分頁功能

 3 I/O重定向

    1 I/O重定向是一個過程,這個過程捕捉一個檔案,指令,程式或腳本,甚至代碼塊的輸出,然後把捕捉到的輸出作為輸入發送給另外一個檔案,指令,程式

    2 檔案辨別符是從0開始到9結束的整數,指明了與程序相關的特定資料流的源。當Linux系統啟動一個程序時,将自動為該程序打開三個檔案,标準輸入,标準輸出,标準錯誤輸出,分别由檔案辨別符0,1,2辨別,該程序如果要打開其它的檔案,則從整數3開始表識

    3 基本I/O重定向符号及其意義

              符号                           意義

        cmd1 | cmd2              管道符,将cmd的标準輸出作為cmd2的标準輸入

        > filename                  将标準輸出寫道檔案filename之中

        < filename                  将檔案filename的内容作為标準輸入

        >> filename                将标準輸出追加到filename,如果不存在則先建立一個

繼續閱讀