在文件中打印 GNU 屏幕结果

Printing GNU-screen results in a file

我正尝试在 linux 上使用 screen 命令。在分离会话完成后,我需要将在 normal shell 命令中获得的标准输出打印到单独的文件中。我该怎么做?

特别是,我正在尝试 运行 屏幕上的 Weka 实验,我需要将结果放在一个单独的文件中。比如下面的结果?

screen java weka.classifiers.bayes.NaiveBayes -t data.arff -x 10 

当我不使用屏幕时,我只是使用以下方法获取结果:

java weka.classifiers.bayes.NaiveBayes -t data.arff -x 10 > file.output

您总是可以简单地 运行 命令,而不是直接,而是通过 shell:

screen bash -c "java weka.classifiers.bayes.NaiveBayes -t data.arff -x 10 > file.output"

或者,可以使用内置的屏幕会话日志记录。不幸的是,screen 并不是特别聪明,而且有些问题,因此人们不得不诉诸诡计来允许设置自定义输出文件。我能想到的最佳方法如下。

创建特殊配置文件,例如~/.screenrc-redir。内容只是一行:

logfile $OUTFILE

现在,在 bash 提示符下,重定向可以这样完成:

OUTFILE=file.output screen -L -c ~/.screenrc-redir <your-command>

它的作用是启动带有日志重定向的屏幕,并将会话的输出发送到环境变量名称指定的文件。

理论上,命令行上的-L可以替换为配置文件中的log on。但无论出于何种原因,这都行不通。可能是 screen.

中的错误