我一直在学习pexpect一周。我花了很长时间将一个pexpect对象传递给一个像这样的函数:
def connect(child,user,ip):
child.sendline("ssh {}@{}".format(user,ip))
out=child.expect(["password:","Are you sure you want to continue connecting",pe.EOF])
if(out in [0,1]):
print("it worked")
print(out)
else:
print("it didn't work")
经过多次测试后,我意识到ssh
命令仅在使用child.spawn("ssh user@ip")
时才有效。命令child.sendline("ssh user@ip")
虽然是由pexpect发送的(我使用sys.stdout
作为日志文件来确保),但实际上什么也没做。所以我的问题是:为什么会这样?有没有办法用sendline初始化ssh连接?