将屏幕缓冲区通过管道传输到另一个命令?

将屏幕缓冲区通过管道传输到另一个命令?

我似乎找不到任何相关信息,所以,有没有办法将所有内容从屏幕窗口传输到另一个命令中。我有一个在屏幕上运行的服务器(这不是最好的主意,但目前这是服务器的唯一方法),并且想要解析输出(在运行时,是否可以将打印到该分离屏幕上的所有内容放入另一个命令中?

谢谢,马克斯

答案1

如果您需要记录正在运行的屏幕会话的输出,请执行以下操作:

  1. 附加到会话。

  2. 按下您的Prefix键(Ctrl+A在未改变的设置上),然后:输入logfile <filename>

  3. 再次Prefix :输入logfile flush <interval in seconds>

  4. Prefix :, 进入log on

screen<filename>现在将每秒将所有输出记录到文件<interval>。您可以使用tail -f该文件来处理输出。

您可以跳过步骤 2 至 4,只需按Prefix,然后H。默认值为 ,screenlog.n并且<filename>为 10 秒<interval>

请注意,如果您需要处理大量输出,则文件可能会变得非常大。

答案2

也许是这样的:

$ screen -d -m sh -c "/path/to/my/exec | tee output.log" 

相关内容