我正在尝试创建一个通过minicom从另一台计算机连接到一台计算机的函数。连接到minicom后,应按Enter键才能将命令发送到minicom连接的计算机。我的python代码如下:

ssh = paramiko.SSHClient() 
ssh.load_system_host_keys() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.connect(self.serialHost, username=self.username, password=self.password) 
shell = ssh.invoke_shell() 
shell.send('minicom free -o') 
shell.send('\u000d') 
ssh.close()  

有人可以告诉我如何正确发送回车键吗?

请您参考如下方法:

通常,当尝试在paramiko中执行命令时,不必调用shell,而只需调用ssh.exec_command(...)即可。如果要执行的命令取决于启动Shell会给您的环境,那么您必须显式调用invoke_shell()方法。

在paramiko中使用invoke_shell()时,必须发送特定shell期望的行终止符。如果要切换到的计算机的默认 shell 为bash,则必须在每个命令后发送换行符(即'\n')。例如:

shell.send('ls\n') 

代替
shell.send('ls') 

如果您要连接到旧版Windows计算机,则需要发送回车符和换行符(即 '\r\n')以处理命令。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!