我有一个用c ++编写的程序,让我们称之为program
,它在运行时有很多输出。我想在文件上记录该输出,以便更容易查看它。我已经尝试了./program & > file
./program & |tee file
但它无法正常工作(如果可行,我想在后台运行它。)
任何想法?
由于
编辑:它不起作用./program > file
。我尝试将它放在背景上,前景上,但文件是空的....
答案 0 :(得分:2)
如果要重定向stdout并将程序置于后台,请使用(./program > file)&
答案 1 :(得分:2)
重定向(>
,2>
,2>&1
等)是实现此目标的标准方法。但是,这并不适用于所有可能的情况。
使用script
捕获终端上显示的所有内容:
script -c "./program arg1 --arg2" output.log
答案 2 :(得分:0)
您可以尝试
program >& somefile &
然后结束&
表示您希望将该作业放入background和(使用bash或zsh)>&
重定向标准输出和 stderr的
然后,您可以使用tail -f somefile
(可能在不同的终端窗口中)查看正在增长的somefile
。见tail(1)
batch
command(您可能需要安装at
包以获得它)并进入nohup(1)。