假设我想在 GNU 中绑定一个键序列screen
以跳转到特定窗口。我可能会这样做:
bind ^t exec screen -X select foo
(我故意简化了这一点;现实世界的应用程序exec
sa 命令动态地确定要切换到哪个窗口,然后运行该screen -X
命令。)
伟大的; 这很好用。当我screen -x
从不同的机器附加(通过)到同一个会话时,问题就出现了。在新机器上,^a^t
按预期执行并切换到窗口。但是,如果我回到原来的机器,保持新机器连接,然后^a^t
切换到新机器上的窗口。如果我拆下新机器,一切都会恢复正常工作。
请注意,这是一个会话,所以-S
没有用。会话不受密码保护。它似乎也与exec
机器无关:虽然在原始机器上手动运行screen -X select foo
insidescreen
可以正常工作,但在原始机器上的单独终端(即 outside screen
)上运行它仍然会切换另一台机器上的窗口。
如何强制screen -X
仅影响运行它的同一台计算机上的附加用户?(如果这更容易的话,同时影响用户/机器也是可以接受的。)
我认为该
at
命令应该是您所看到的解决方案。在 screen's man 命令的描述中,at
它说:听起来应该在两个地方切换窗口。