2009-10-02 29 views
5

Có thể thực hiện lựa chọn hoặc thăm dò ý kiến ​​trên các bộ mô tả tệp trong bash không? Bản chất của những gì tôi đang cố gắng làm là:Tương đương với lựa chọn hoặc thăm dò trong bash

mkfifo fifo 
exec 3<fifo 
PROMPT_COMMAND="while read -t 0 line; do echo \$line; done <&3" 

Thực hiện là giữ cho ống mở (nếu không nó sẽ bị đóng ở cuối mỗi vòng lặp). Về lý thuyết, điều này sẽ đầu ra bất cứ điều gì vào đường ống trước mỗi dấu nhắc. Tuy nhiên, nó dường như không hoạt động, như với -0 nó thậm chí không cố đọc.

-t 1 hoạt động như một sự quyến rũ, nhưng điều đó buộc thời gian trễ một giây ở mọi lời nhắc, đó không phải là điều tôi muốn.

Tối ưu sẽ thực hiện lựa chọn với thời gian chờ là 0,25 giây (nếu tôi đang thực hiện lệnh để khiến nội dung nào đó được ghi vào đường ống, có nghĩa là có sự chậm trễ ngắn khi tôi làm việc với không đồng bộ tin nhắn) và sự chậm trễ đó tôi có thể sống với. Thời gian chờ bằng không có thể sẽ ổn, sau đó tôi sẽ chỉ tạo một chương trình để có độ trễ giây.

Bất kỳ ý tưởng nào?

Trả lời

1

tôi stumbled on this ngày hôm nay, và nó thực sự giải quyết vấn đề của tôi khá thanh lịch. screen cho phép cửa sổ dòng lệnh hiện tại được tách ra, nơi tôi có thể giảm một phần của cửa sổ xuống chỉ một vài dòng, nơi tôi giữ nguyên đầu vào của mình và chỉ cat fifo ở phần khác của cửa sổ.

Màn hình chắc chắn đá nhiều hơn tôi đã biết (tách ra một mình làm cho nó một trong những công cụ tốt nhất bao giờ hết).

0

Các trường hợp sau không được tương đương?

$> tail -f FIFO

Bạn cũng có thể xác định khoảng thời gian ngủ ('-s'), thử lại và max-nguyên-số liệu thống kê, vv

+0

đuôi không (đuôi dành cho tệp có thể tìm kiếm), mèo sẽ làm những gì bạn đang đề xuất, nhưng nó sẽ phá vỡ dòng lệnh của bạn nếu dữ liệu đến khi bạn nhập lệnh của mình. Hoặc bạn phải làm điều đó trong một bảng điều khiển khác nếu bạn có. – falstro

Các vấn đề liên quan