【发布时间】:2011-08-17 16:18:22
【问题描述】:
我有一个需要用户输入的程序,我使用tee 将其保存到一个文件中:
tee program.in | program
我还必须在另一个文件中捕获 stdout 和 stderr。这就是诀窍
tee program.in | program > program.out 2>&1
问题是用户输入将基于程序之前输出的内容,因此用户必须在终端中查看程序输出。
你知道如何做到这一点吗?
【问题讨论】:
我有一个需要用户输入的程序,我使用tee 将其保存到一个文件中:
tee program.in | program
我还必须在另一个文件中捕获 stdout 和 stderr。这就是诀窍
tee program.in | program > program.out 2>&1
问题是用户输入将基于程序之前输出的内容,因此用户必须在终端中查看程序输出。
你知道如何做到这一点吗?
【问题讨论】:
另一个更惯用的tee :-?,即
tee program.in | program 2>&1 | tee program.out
我希望这会有所帮助。
附:由于您似乎是新用户,如果您得到对您有帮助的答案,请记住将其标记为已接受,和/或给它一个 +(或 -)作为有用的答案。
【讨论】:
tail -f program.out,但输出是缓冲的,不会立即出现。
tee 也会延迟显示它。尝试用unbuffer 包装program(如果它在您的系统上可用)。祝你好运。
script 包装所有内容。像 script -c "tee grid09.in | grid09" -f grid09.out 这样的东西可以完成工作。