有人可以發佈一個在Linux中Bash中使用命名管道的簡單示例嗎?在Linux Bash中使用命名管道的示例
回答
一個實際使用命名管道的最好的例子...
從http://en.wikipedia.org/wiki/Netcat
另一個有用的特性是使用的netcat作爲代理。端口和主機都可以重定向。請看下面的例子:
nc -l 12345 | nc www.google.com 80
端口12345表示請求 這將啓動在端口12345 NC服務器和所有連接重定向到google.com:80。如果網頁瀏覽器向nc發出請求,則該請求將發送至Google,但該響應不會發送至Web瀏覽器。這是因爲管道是單向的。這可以通過命名管道解決,以重定向輸入和輸出。
mkfifo backpipe
nc -l 12345 0<backpipe | nc www.google.com 80 1>backpipe
下面是命令:
$ mkfifo named_pipe
$ echo "Hi" > named_pipe &
$ cat named_pipe
第一個命令創建的管道。
第二個命令寫入管道(阻塞)。 &
將其置於後臺,以便您可以繼續在同一個shell中輸入命令。當FIFO由下一個命令清空時它將退出。
最後一條命令從管道讀取。
我會改變#爲$所以它不是所有的評論(並沒有作爲根運行!) – alternative 2010-11-06 16:45:00
這只是爲了表明這是一個shell提示符! – Khaled 2010-11-06 16:49:03
習慣使用「#」來表示根提示符(即,根shell中的提示符)。這裏沒有任何東西需要在root shell中運行。 – thomasrutter 2013-07-02 02:28:13
打開兩個不同的殼體,並將它們並排放置。在這兩個,去到/ tmp /目錄
cd /tmp/
在第一種類型:
mkfifo myPipe
echo "IPC_example_between_two_shells">myPipe
在第二個,類型:
while read line; do echo "What has been passed through the pipe is ${line}"; done<myPipe
第一殼不會放棄你有任何提示,直到你在第二個shell中執行第二部分代碼。這是因爲FIFO的讀寫阻塞。
您也可以通過執行ls -al myPipe
來查看FIFO類型,並查看該特定類型文件的詳細信息。
下一步是將腳本啓動到腳本中! - 希望能幫助到你。
是否可以對fifo進行非阻塞寫入? – dabicho 2016-03-17 17:09:38
- 1. 命名管道示例
- 2. 在Windows/Mac/Linux上的命名管道?
- 3. 在bash中命名管道比普通管道更快嗎?
- 4. 在bash中使用命名管道 - 數據丟失問題
- 5. bash,發球在命名管道?
- 6. 命名管道的使用
- 7. 在Linux中使用管道(|)
- 8. 在C中使用管道的命名管道塊子進程
- 9. 命名管道(matlab-> Linux)的短讀
- 10. Linux上的MySQL,PHP和命名管道
- 11. 在ASP.NET中使用「命名管道」HttpModule
- 12. 在Rails中使用命名管道
- 13. Linux fifo(命名管道)O_NONBLOCK中斷管道
- 14. 使用命名管道
- 15. 使用命名管道
- 16. 命名管道使用C + +
- 17. BASH命名管道鎖起來
- 18. 如何在linux下使用一個持久命名管道?
- 19. Linux命令 - 管道命令
- 20. 如何使用bash命令列出進程使用的管道
- 21. 如何使用linux shell的管道重命名文件?
- 22. Linux命令行與Linux命令管道
- 23. java中的命名管道
- 24. rpmbuild中的命名管道
- 25. NSIS中的命名管道
- 26. 在Linux中使用管道C使用管道
- 27. 帶命令行命名管道提示
- 28. unix中的命名管道
- 29. 「多個」管道命令中斷的bash
- 30. 簡單的客戶端/服務器程序在Linux中使用命名管道
任何特定的語言? – slashmais 2010-11-06 16:36:58