2013-04-14 96 views
1

我正在尋找一種方法來欺騙Linux程序,因爲它認爲它連接到TTY,因此輸出是行緩衝而不是塊緩衝。仿真PTY和輸出線刷新流

當我直接在終端模擬器中調用程序時,它的行爲是正確的,但是如果我將其輸出管道輸出到while read line; do ...; donecat它不會。

基本上我想有這樣的事情結束了:

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