2013-04-14 2 views
1

리눅스 프로그램이 TTY에 연결되어 출력이 블록 버퍼 대신 라인 버퍼링되는 것으로 생각하도록 속일 수있는 방법을 찾고 있습니다.PTY를 에뮬레이트하고 라인 플러시 된 스트림을 출력합니다.

터미널 에뮬레이터 내에서 프로그램을 직접 호출하면 올바르게 작동하지만, 출력을 while read line; do ...; done 또는 cat으로 파이프하면 그렇지 않습니다.

기본적으로이 같은 뭔가 끝내고 싶습니다

exec "${some_strange_wrapper}" "${some_program}" | while read line; 
do 
    # Do something... 
done 

답변

2

내 질문에 쓰기 위해 더 많은 일을 생각하면서, 나는 답을 발견!

socat! 다른 유형의 파일 설명간에 많은 종류의 연결을 설정할 수있는 외부 프로그램입니다. 그러나이 경우

는,이처럼 사용할 수 있습니다

socat EXEC:"${some_program}",pty stdout 

감사를 모든 사람에게 거기에,이 질문에 대답해야하는 경우 확인! (이 경우에는 더 이상 필요하지 않지만 ...) :-)

+0

+1 자기 대답은 SO – msw

관련 문제