在我们敲命令的时候经常会用到一些组合的控制按键,比如我们最常用的 ctrl + c 或者 ctrl + z。那么我们怎么在我们的代码里来模拟这些ASCII码的组合控制按键呢?
这是在嵌入式设备调测,使用telnet会话,串口通信,SSH通信等场景下非常普通常见的需求。那么我们就可以发送ASCII编码的控制字符来模拟组合控制按键。具体映射关系详见如下表。
这边就有一个例子,比如我们想和目标设备建立一个telnet连接。然后发送一个blocking的前台运行的command,当这个command在运行了时长为timeout的时间后。如果,此时terminate 为True时。我们就发送 “\003”+"\r" (即:ctrl + c, 然后回车), 来停止命令的运行。Python的例子代码如下:
import telnetlib
calss Telnet(object):
...
def send(self,cmd,terminate,timeout):
...
if terminate:
self.telnetObj.write(("\003"+"\r").encode('utf8'))
...