2013年10月25日 星期五

[Linux] 管線命令_pipe commands


為什麼我們會需要管線命令呢?因為在執行命令列時有時候會下達多個指令,才會取得想要的資料及格式,所以我們會需要將這些指令結合成管線命令,把前一項的輸出結果直接再代入第二個命令。



在Linux指令中,我們很常會使用到一個符號就是「|」,這個符號的作用是用來連結一個命令的輸出與輸入,舉個例子來說
ls | more
shell會先執行ls指令,再將ls的輸出結果(standard output,簡稱STDOUT)當作more的輸入(standard input,簡稱STDIN),執行過程如以下的圖:(圖片擷取自鳥哥哥)

這邊要特別注意的是
(1) 接在「|」後面的指令必須是要可以接收 STDIN 才行(ex. more)
(2) 管線命令僅處理standard output,會忽略standard error output的訊息,意即僅能接收前一個命令傳送的正確訊息。


鳥哥哥已經很貼心的幫我們分好了六大類:擷取命令、排序命令、雙向重導向、字元轉換命令、分割命令、參數代換

參考資料:
[1] http://linux.vbird.org/linux_basic/0320bash.php#pipe

沒有留言:

張貼留言