1ac*_*ace 36 bash logs gnu-screen recording
我有一个screen
正在运行的实例,我需要在 中执行一些代码screen
,然后将结果输出到我的脚本中。
第一部分很简单,我只是screen -S session_name -X eval 'stuff "$cmd"\015'
。
(我修改了我在脚本中找到的一行)
第二部分,获取输出,比较棘手。无论大小如何,我怎样才能获得整个输出?
N J*_*N J 34
你可以先screen
用-L
选择。这将导致 screenscreenlog.n
在当前工作目录中创建一个文件(n 部分是数字,从零开始)。
在你的情况下,这看起来像: screen -S session_name -L -X eval 'stuff "$cmd"\015'
只要您记得事后清理,这应该与您所追求的相符。
对于日志的最后一行,可以使用 轻松获取tail -1 screenlog.0
,或者可以根据需要解析整个日志。
ric*_*ali 25
将来可能会有帮助的另一个细微差别:如果您在屏幕会话中,您可以交互地要求创建日志文件。按ctrl- a H(Control-A 后跟大写 H)要求屏幕开始将您所在的任何窗口转储到日志文件中。