我有一个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)让屏幕开始将您所在的任何窗口转储到日志文件中。