1

我是 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')

那么,我应该如何在我的字符串中表示换行符?

提前致谢

4

1 回答 1

2

您不能将两个命令放在一个生成中。你可以使用一个技巧:

b = pexpect.spawn("bash -c 'whoami;users'")

要匹配换行符,您应该使用:

b.expect('root\r\nroot user2')

终端 TTY 设备驱动程序(dumb、vt100、ANSI、xterm 等)都使用 CR/LF 组合来标记行尾。UNIX 仅使用换行符来结束文件中的行,但在涉及 TTY 设备时不使用。

你可以从这里阅读更多关于它的信息。

于 2013-08-06T23:14:09.290 回答