![使用命令将屏幕会话的输入定向到会话内的特定窗口?](https://linux22.com/image/130757/%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E5%B0%86%E5%B1%8F%E5%B9%95%E4%BC%9A%E8%AF%9D%E7%9A%84%E8%BE%93%E5%85%A5%E5%AE%9A%E5%90%91%E5%88%B0%E4%BC%9A%E8%AF%9D%E5%86%85%E7%9A%84%E7%89%B9%E5%AE%9A%E7%AA%97%E5%8F%A3%EF%BC%9F.png)
所以我有一个自动备份脚本,每小时备份服务器的重要文件。
它有很多像这样的行,将输入发送到游戏服务器控制台正在运行的屏幕会话,以在开始备份文件时进行广播:
screen -x $SCREENNAME -X stuff "`printf "say Backing up world: \'$WORLD\'\r"`
它工作正常,除非我在屏幕会话中使用不同的窗口。
当我在同一屏幕会话中使用不同的窗口时,脚本尝试say Backing up world
在我正在使用的 bash 终端中执行,但这不起作用,并且没有消息发送到游戏控制台。
有什么方法可以将输出定向到 seesion 内的特定屏幕。我的游戏机始终位于第一个屏幕上,因此屏幕 0。
如果相关的话我使用的是 CentOS 7
答案1
您可以通过指定 -p 来预选择一个窗口,0 是第一个窗口,1 是第二个窗口,依此类推...
屏幕 -x $SCREENNAME -p 0 -X 东西“ printf "say Backing up world: \'$WORLD\'\r"
”