Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何让pexpect在进程上触发。linux命令行提示符除了($)之外?_Python_Linux_Pexpect - Fatal编程技术网

Python 如何让pexpect在进程上触发。linux命令行提示符除了($)之外?

Python 如何让pexpect在进程上触发。linux命令行提示符除了($)之外?,python,linux,pexpect,Python,Linux,Pexpect,我在检测Linux命令提示符的$pexpect时遇到问题。为了更好地了解我正在努力实现的目标: 要触发我的pexpect的命令行提示符示例: testcomp@testcomp-桌面:~$ 检测它的我的pexpect代码示例: child.expect['$',pexpect.TIMEOUT] 测试后的结果是,它选择了pexpect.TIMEOUT,即使有提示。我还尝试了$like\$和~$FYI的两种不同变体。如果您想与我使用minicom的Linux机器进行控制台连接,这是应该可以使用的代码

我在检测Linux命令提示符的$pexpect时遇到问题。为了更好地了解我正在努力实现的目标:

要触发我的pexpect的命令行提示符示例:

testcomp@testcomp-桌面:~$

检测它的我的pexpect代码示例:

child.expect['$',pexpect.TIMEOUT]


测试后的结果是,它选择了pexpect.TIMEOUT,即使有提示。我还尝试了$like\$和~$

FYI的两种不同变体。如果您想与我使用minicom的Linux机器进行控制台连接,这是应该可以使用的代码。上面的评论中描述的是使用“[$]”来检测Linux命令行提示符,它似乎工作得很好

child = pexpect.spawn("minicom -b 115200 -o -D /dev/ttyUSB0")
check = child.expect(["login",'[$]'])
if(check == 0):
    child.sendline(username)
    child.sendline(password)
else:
    child.sendline("\r")

@Asocia如果您不能期望它,那么是否有任何方法来验证命令提示符是否已打印?首先:$在解析为正则表达式时匹配行尾;它和美元符号不符。[$]应该有效;\$是否有则取决于你把它放在什么样的字符串中。第二:我们确实需要知道是否应该看到提示。请将问题中的代码扩展为一个可运行的示例,该示例应该能够匹配提示,或者通过生成类似bash-l的东西来实例化子对象-i@Charles达菲,你说得对,[$]表达式确实有效。谢谢