我正在编写一个脚本,它会生成几个独立的屏幕会话,以在其中运行交叉通话软件。 软件的每个实例都有一个交互行为:几个击键可以处理“设备”状态(例如'r'重置设备状态,'q'干净地杀死设备等。)
我已经确认设备的产生一切正常。
在我的脚本结束时,我想向每个会话发送'q'按键,以便以正确的方式停止设备,然后分离屏幕会话。
我所遇到的是我用以下代码发送'q':
screen -S <session_name> -p 0 -X stuff "q"
或者我重新连接到会话并按键盘上的'q',结果是一样的。击键被解析为空字符,设备开始挂起,反复询问正确的选项。
即使获得了不正确选项的设备行为也没有得到很好的处理(看起来像一个无限循环),我想我错过了关于屏幕输入解析的一些内容。
那么问题是:
如何在分离的屏幕会话中模拟击键?
提前谢谢
更新:在我看来,问题是由“-dm”屏幕选项引起的。如果我创建一个屏幕会话,我在里面运行命令,我将其分离,然后重新连接并按'q'一切都很好。