轉自:http://blog.sina.com.cn/s/blog_605f5b4f0101azuc.htmlhtml
建立命名管道的方法爲:mkfifo pipe_name。spa
這樣就能建立一個命名的管道pipe_name。code
運行命令並把輸出重定向到管道並扔後臺(不然會hang住):cmd > pipe_name &htm
tmp_fifofile="/tmp/$$.fifo" mkfifo $tmp_fifofile # 新建一個fifo類型的文件 exec 6<>$tmp_fifofile
# 將fd6指向fifo類型,若是沒有這句,在向文件$tmp_fifofile或者&6寫入數據時,程序會被阻塞,直到有read讀出了管道中的數據位置,
而執行了上述以後,能夠在程序運行期間不斷向fifo類型文件寫入數據而不會阻塞,而且數據會被保存下來以供read程序讀出。 for ((i=0;i<$thread;i++));do echo done >&6 # 事實上就是在fd6中放置了$thread個回車符