2011-08-17 65 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'完成了工作。 –

相关问题