2011-08-17 20 views
2

我有,要求用戶輸入,這是我保存到文件中,通過使用tee的程序:重定向交互式命令的輸出中對文件和終端

tee program.in | program 

我也有捕獲stdout和stderr在另一文件。這是卓有成效的

tee program.in | program > program.out 2>&1 

的問題是,用戶輸入將會根據程序前輸出什麼要,所以用戶必須看到終端程序輸出。

有關如何完成此任何想法?

回答

1

另一個更地道tee: - ?,即

tee program.in | program 2>&1 | tee program.out 

我希望這有助於。

P.S.因爲你似乎是一個新用戶,如果你得到一個可以幫助你的答案,請記住將它標記爲已接受,並且/或者給它一個+(或 - )作爲有用的答案。

+0

不幸的是,它不起作用。輸出寫入文件時,它不會打印在終端中。我可以打開終端並執行'tail -f program.out',但輸出被緩衝,並且不會立即顯示。 –

+0

如果輸出緩衝,那麼'tee'也會延遲顯示。嘗試用'unbuffer'包裝'program'(如果它在系統上可用)。祝你好運。 – shellter

+2

另一個解決方案(我在通過Stack Overflow存檔時發現這個問題)是用'script'包裝所有東西。像這樣的'script -c'tee grid09.in | grid09「-f grid09.out'完成了工作。 –

相關問題