如何将同一命令发送到屏幕会话中所有窗口的子集



在这篇文章的答案中,科里·亨德森(Corey Henderson(解释了如何在屏幕上使用at和qustem命令一次将命令发送到屏幕会话的所有窗口。我想知道如何同时将输入缓冲区填充到窗口中。换句话说,我想使用过滤器来指定窗口应接收输入,哪些不应该。

如果我可以在窗口号上过滤而不是用户名或窗口名称,那将是很棒的,因为bash喜欢有时更改窗口名称,并且不需要在多台机器上修改.bashrc。另外,有时我无法控制我正在运行的用户作为。

到目前为止,我只能在当前活动窗口或所有窗口上运行命令。

使用at命令时,我发现Windows过滤的唯一方法是使用Windows名称。

默认情况下,屏幕名称是在窗口中创建的程序的实际命令名称之后设置的,对我来说,这通常是bash。但是Windows名称可以更改为您喜欢CTRL a的任何内容。如果您的Windows的名称动态更改,请检查您没有启用动态标题。

因此,在实践中,这意味着您可以给相关的窗口一个通用前缀,然后使用at "prefix#" stuff "command"仅在名称匹配过滤器的窗口上执行命令。

想象我们在屏幕会话中打开了以下窗口:

0$ front1 - 1$ front2 - 2$ back1 - 3$ back2 - 4$ back3 - 5$ db1 - 6$ db2

下一个命令将以字符串 Back 开始将service ntpd stop命令发送到Windows,那就是Back1,Back2,Back3:

at "back#" stuff "service ntpd stop^M"

相关内容

  • 没有找到相关文章

最新更新