我正在尝试使用pexpect连接到localhost上的SSH并尝试在建立SSH会话后列出文件。会话建立,但我没有得到'ls'的输出。我已经能够在FTP中完成,但不能使用SSH,这是代码:
import pexpect
import time
import sys
child=pexpect.spawn('ssh 127.0.0.1')
child.logfile=sys.stdout
child.expect('[P|p]assword')
child.sendline('abcd@123?')
child.expect('Welcome')
print child.before,
print child.after
time.sleep(3)
child.sendline('ls -l')
time.sleep(3)
child.expect('$')
print child.before,
print child.after
child.sendline('logout')
child.close
这里我也试着睡眠过程,但它在localhost的SSH标语之间打印'ls -l'。但是没有列出文件。 Plz提供了一些提示。进一步说明了一些好的书或链接,用于深入研究python以用于测试目的。非常感谢...(我将在12小时后上线,是时候睡觉了)
答案 0 :(得分:3)
传递给expect()
的模式是正则表达式,而不是文字字符串。所以$
匹配字符串的结尾,因为pexpect的工作方式可以在任何地方。
你可以逃避美元符号 - \$
- 或使用expect_exact()
,它采用普通字符串。