将键击发送到分离的屏幕会话

时间:2017-07-13 09:57:39

标签: bash gnu-screen keystroke

我正在编写一个脚本,它会生成几个独立的屏幕会话,以在其中运行交叉通话软件。 软件的每个实例都有一个交互行为:几个击键可以处理“设备”状态(例如'r'重置设备状态,'q'干净地杀死设备等。)

我已经确认设备的产生一切正常。

在我的脚本结束时,我想向每个会话发送'q'按键,以便以正确的方式停止设备,然后分离屏幕会话。

我所遇到的是我用以下代码发送'q':

screen -S <session_name> -p 0 -X stuff "q"

或者我重新连接到会话并按键盘上的'q',结果是一样的。击键被解析为空字符,设备开始挂起,反复询问正确的选项。

即使获得了不正确选项的设备行为也没有得到很好的处理(看起来像一个无限循环),我想我错过了关于屏幕输入解析的一些内容。

那么问题是:

如何在分离的屏幕会话中模拟击键?

提前谢谢

更新:在我看来,问题是由“-dm”屏幕选项引起的。如果我创建一个屏幕会话,我在里面运行命令,我将其分离,然后重新连接并按'q'一切都很好。

0 个答案:

没有答案