我是python的新手,我有一个简单的问题 我有这个功能
def testU(self):
b = pexpect.spawn('users')
b.expect('root user2')
它工作正常.. 和这个功能
def testW(self):
b = pexpect.spawn('whoami')
b.expect('root')
也没关系。
但是当我尝试将它们放在一起时,我得到一个错误,我认为这是因为我编写新行的方式
def testZ(self):
b = pexpect.spawn('whoami; users')
b.expect('root\nroot user2')
那么,我应该如何在字符串中表示换行符?
提前致谢
答案 0 :(得分:2)
您不能在一个spawn中放置两个命令。你可以使用一个技巧:
b = pexpect.spawn("bash -c 'whoami;users'")
要匹配换行符,您应该使用:
b.expect('root\r\nroot user2')
终端TTY设备驱动程序(哑,vt100,ANSI,xterm等)都使用CR / LF组合来标记行尾。 UNIX仅使用换行符来结束文件中的行,但是当涉及TTY设备时则不行。
您可以从here了解更多相关信息。