【发布时间】:2020-06-12 21:11:23
【问题描述】:
我在检测 Linux 命令提示符的"$" 时遇到问题。为了更好地了解我正在努力完成的工作:
我想触发我的 pexpect 的示例命令行提示:
testcomp@testcomp-desktop:~$
我的 pexpect 代码示例:
child.expect(['$',pexpect.TIMEOUT])
测试后的结果是它选择了pexpect.TIMEOUT,即使提示在那里。我还尝试了"$" 的几种不同变体,例如"\$" 和"~$"
【问题讨论】:
-
@Asocia 如果你不能指望它那么有没有办法验证命令提示符是否打印?
-
第一:
$在解析为正则表达式时匹配行尾;它与美元符号不匹配。[$]应该可以工作;\$是否确实取决于您放入的字符串类型。 -
第二:我们真的需要minimal reproducible example 来知道提示是否应该被看到。请将您问题中的代码扩展为一个可运行的示例,应该能够匹配提示(可能通过产生类似
bash -l -i的内容来实例化child) -
@Charles Duffy,你是对的 [$] 表达式确实有效。谢谢!