Bash

2009-10-02 5 views
5

içinde seçme veya yoklama eşdeğeri Bash içinde dosya tanıtıcıları üzerinde seçim veya seçim yapmak mümkün mü? Ben bunu yapmaya çalışıyorum şeyin özü şudur:Bash

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

exec açık boru (aksi takdirde her döngünün sonunda sona ermesi olurdu) orada tutmaktır. Teoride, bu her komuttan önce boruya giren herhangi bir şey çıkarırdı. Bununla birlikte, -t0 ile okumaya bile çalışmadığı gibi işe yaramıyor.

-t 1 Bir çekicilik gibi çalışır, ancak bu her istemde bir saniye gecikme zorlar, bu benim istediğim şey değil.

Optimal, .2 saniye zaman aşımına sahip bir seçim yapmak olacaktır (eğer sırayla bir şeye yazılacak bir komut yürütüyorsa, bu, asenkron olarak çalıştığım için kısa bir gecikme olmayacaktır) mesajlar, ve bu gecikme ile yaşayabilirim. Sıfır zaman aşımı muhtemelen tamam olur, o zaman sadece bir sonraki gecikme için bir program oluşturacağım.

Herhangi bir fikrin var mı?

cevap

1

Ben stumbled on this bugün ve aslında Sorunumu oldukça zarif bir şekilde çözüyor. screen, geçerli terminal penceresinin bölünmesine izin veriyor, pencerenin bir bölümünü yalnızca birkaç satırla azaltabiliyorum, girişimi saklıyorum ve pencerenin diğer kısmında sadece cat fifo. Ekran, kesinlikle bildiğimden çok daha fazla sallanıyor (tek başına sökmek onu en iyi araçlardan biri yapar).

0

Aşağıdakiler eşdeğer olmaz mı?

$> Ayrıca ('-s') uyku aralıklarını belirleyebilir

FIFO -f kuyruk, yeniden deneme ve --max-değişmeden-istatistik, vb

+0

kuyruk kuyruğu (kuyruk aranabilir dosyalar içindir), kediniz önerdiğin şeyi yapar, ancak komutunu yazarken veri gelirse komut satırını bozardı. Ya da sahipseniz farklı bir konsolda yapmak zorundasınız. – falstro