2009-10-02 4 views
5

bash의 파일 설명자에서 선택 또는 폴링을 수행 할 수 있습니까? 내가 할 노력하고있어의 본질은 이것이다 :bash의 select 또는 poll에 해당합니다.

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

간부가 열려 파이프 (그렇지 않으면 각 루프의 끝에서 폐쇄 될 것이다)을이 유지하는 것입니다. 이론적으로, 이것은 각 프롬프트 전에 파이프에 들어가는 것을 출력합니다. 그러나, 그것은 작동하지 않는 것처럼 보입니다. -t0과 같이 읽기조차하지 않습니다.

-t 1은 매력처럼 작동하지만, 모든 프롬프트에서 1 초의 지연이 발생합니다. 이는 원하는 것이 아닙니다.

최적의 선택은 .2 초 시간 초과입니다. (파이프에 쓰여지는 명령을 실행 중이면 비동기로 작업 할 때 짧은 지연이 발생합니다. 메시지), 그리고 그와 함께 살 수있는 그 지연. 제로 타임 아웃은 아마 괜찮을 것이고, 그다음 잠깐 지연되는 프로그램을 만들 것입니다.

아이디어가 있으십니까?

답변

1

I stumbled on this 오늘, 그리고 실제로 내 문제를 아주 우아하게 해결해 준다. screen은 현재 터미널 창을 나눌 수 있습니다. 여기서 한 부분을 몇 줄로 줄여서 입력 내용을 유지하고 다른 부분은 cat fifo으로 줄일 수 있습니다.

화면은 내가 이미 알고있는 것보다 훨씬 더 많이 흔들립니다 (분리만으로도 최고의 도구 중 하나입니다).

0

다음은 같지 않습니까?

$> 또한 ('-s') 수면 간격을 지정할 수 있습니다

를 선입 선출 (FIFO) -f 꼬리, 시도 및 --max-변경-통계 등

+0

tail no (꼬리는 검색 가능한 파일입니다.) cat은 사용자가 제안한 것을 수행하지만 사용자가 명령을 입력 할 때 데이터가 도착하면 사용자의 명령 행을 파열시킵니다. 또는 가지고 있다면 다른 콘솔에서해야 할 것입니다. – falstro