我想把结果放在' ls / home'通过ssh.So进入mylog1.txt,我可以在我的电脑上查看它。当我运行脚本时,没有错误,mylog1.txt中没有输出。
#!/usr/bin/env python import pexpect import sys child=pexpect.spawn('ssh shiyanlou@192.168.42.2') fout=file('mylog1.txt','w') child.logfile=fout child.expect("password:") child.sendline("xxxxx") child.expect('$') child.sendline('ls /home')
shiyanlou:pythontest/ $ cat mylog1.txt
shiyanlou@192.168.42.2's password: xxxxxxx
ls /home
mylog1.txt文件中只有两个命令。为什么?
答案 0 :(得分:0)
pexpect很适合与应用程序进行交互。
但是如果你只是想要ssh并执行一些命令,我会建议你试试Paramiko
答案 1 :(得分:0)
您必须等到vvi
命令完成,就像您与终端进行交互一样。请参阅以下示例(我正在使用ssh的公钥身份验证,因此没有密码提示):
42