如何将“screen”内的输出输出到脚本中?

如何将“screen”内的输出输出到脚本中?

我有一个screen正在运行的实例,我需要在 中执行一些代码screen,并将结果输出到我的脚本中。

第一部分很简单,我只是screen -S session_name -X eval 'stuff "$cmd"\015'
(我修改了我在脚本中找到的一行

第二部分,即输出,比较棘手。无论大小如何,我怎样才能获得整个输出?

答案1

您可以screen-L选项开始。这将导致 screen 在当前工作目录中创建一个文件screenlog.n(n 部分是数字,从零开始)。

在你的情况下,这看起来像:screen -S session_name -L -X eval 'stuff "$cmd"\015'

只要您记得事后清理,这应该符合您的要求。

对于日志的最后一行,可以使用 轻松获取tail -1 screenlog.0,或者可以根据需要解析整个日志。

答案2

另一个可能在将来有用的细微差别:如果您处于屏幕会话中,您可以交互式地请求创建日志文件。按ctrl- a H(Control-A 后跟大写 H)让屏幕开始将您所在的任何窗口转储到日志文件中。

相关内容