我试图创建一个通过minicom从另一台机器连接到机器的功能。连接到minicom后,应按下输入键,以便将命令发送到由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()
有人能告诉我如何正确发送回车键吗?
答案 0 :(得分:0)
您可以尝试使用'\r\n'
作为返回键,但我认为还有一个exec_command
方法调用,它不需要返回键。像。的东西。
shell.exec_command('minicom free -o')
答案 1 :(得分:0)
通常,当尝试在paramiko中执行命令时,您不必调用shell,只需调用ssh.exec_command(...)
即可。如果要执行的命令取决于启动shell将为您提供的环境,则必须显式调用invoke_shell()
方法。
当你在paramiko中使用invoke_shell()
时,你必须发送特定shell期望的行终止字符。如果您正在使用bash
作为默认shell,则必须在每个命令后发送换行符(即'\n'
)字符。例如:
shell.send('ls\n')
而不是
shell.send('ls')
如果您要连接到较旧的Windows计算机,则需要为要处理的命令发送回车符和换行符(即'\r\n'
)。