2012-07-07 30 views
5

Có thể tạo vòng lặp bằng cách sử dụng các ống Linux không? Ví dụ.Đường ống & vòng lặp Linux

cmd1 | cmd2 | cmd3 | 'Trở lại stdin cmd1'

Nói cách khác, tôi muốn stdout tại cmd3 được kết nối trở lại stdin của cmd1.

+0

Hãy nhận biết rằng vòng như vậy có thể gây ra sự bế tắc. Nếu một lệnh trong vòng lặp ngừng đọc quá lâu trong khi vẫn viết, cuối cùng tất cả các đường ống trở nên đầy và chặn. Ngay cả lệnh gốc ban đầu cũng không thể ghi nữa. – jilles

+0

Tôi sẽ sử dụng điều này như là một "vòng truyền tin nhắn" (như là một thay thế cho một hệ thống dựa trên 0MQ): Tôi không mong đợi loại bế tắc này xảy ra. – jldupont

Trả lời

4

Bạn có thể sử dụng một ống tên/FIFO:

mkfifo cmd3-to-cmd1 
cmd1 < cmd3-to-cmd1 | cmd2 | cmd3 >> cmd3-to-cmd1 
Các vấn đề liên quan