gor*_*ron 8 python ssh subprocess expect
我正在尝试指示我的Python安装执行Expect脚本"myexpect.sh":
#!/usr/bin/expect
spawn ssh usr@myip
expect "password:"
send "mypassword\n";
send "./mycommand1\r"
send "./mycommand2\r"
interact
Run Code Online (Sandbox Code Playgroud)
我在Windows上,所以将Expect脚本中的行重写为Python不是一种选择.有什么建议?有没有什么可以像"./myexpect.sh"从bash shell那样运行它?
我在subprocess命令上取得了一些成功:
subprocess.call("myexpect.sh", shell=True)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
myexpect.sh不是有效的Win32应用程序.
我该如何解决这个问题?
pyf*_*unc 18
使用pexpect库.这是Expect功能的Python版本.
例:
child = pexpect.spawn('Some command that requires password')
child.expect('Enter password:')
child.sendline('password')
child.expect(pexpect.EOF, timeout=None)
cmd_show_data = child.before
cmd_output = cmd_show_data.split('\r\n')
for data in cmd_output:
print data
Run Code Online (Sandbox Code Playgroud)
Pexpect有很多可以学习的例子.要使用interact(),请查看script.py
示例:
(对于Windows,有替代pexpect.)
归档时间: |
|
查看次数: |
43212 次 |
最近记录: |