我正在试图弄清楚如何编写脚本以将消息发送到gnu屏幕“窗口”。即我打开了一个屏幕会话,在一个窗口中我有一个vim会话,而在另一个窗口中我有一个方案解释器。当我保存我的vim会话时,我希望它在新环境中加载的另一个窗口中重新启动解释器。我可以找出除了如何在vim中使用“on save”挂钩以外的所有内容,将shell命令发送到另一个“屏幕窗口”,导致脚本终止并重新启动。如果我能弄清楚如何发送命令我可以杀死进程然后开始一个新进程 - 我只需要确保它从正确的“窗口”开始。
答案 0 :(得分:4)
让vim发出shell命令,并使用screen -X
向屏幕发出命令。 :at <other-window> stuff <restart-command>
的一些排列。有关更多命令,请参阅man screen
的自定义部分。
例如,如果我在屏幕窗口1中,使用vim,并且我在窗口0中有一个irb会话,要重新启动irb会话,我会这样做
:!screen -X at 0 stuff exit^Mirb^M
(通过CTRL-V Enter输入^M
)。
答案 1 :(得分:1)
如果让方案解释器每隔很多秒运行就足够了,你可以在第二个屏幕窗口中运行watch /path/to/scheme/interpreter /path/to/scheme/file
。可以使用命令行参数调整watch
运行命令的时间间隔。 watch
手册页包含详细信息。