《Debugging Patterns And Controlling Output 上半部分》
在编程中,调试模式匹配问题和控制输出是非常重要的技能。下面将深入探讨如何解决模式不匹配的问题,以及如何生成、控制和抑制不同类型的输出。
1. 模式调试
编写有效的模式是一项具有挑战性的任务,因为需要考虑多个方面:
- 必须了解构建模式的规则。
- 要理解在 Tel 中表达这些模式的规则。
- 需知道预期字符串中包含哪些字符。
任何一个步骤的误解都可能导致编写的模式无法匹配。当模式未按预期匹配时,脚本执行速度通常会变得非常缓慢。例如,以下是一个登录脚本片段:
expect "Login: "
send "don\r"
expect "Password: "
send "swordfish\r"
在典型系统上,这个片段本应快速执行,但实际上可能需要 20 秒,而不是 1 - 2 秒。这存在两个问题:
- 模式大小写问题 :第一个模式期望的是 “Login: “,但在典型的 UNIX 系统中,登录提示是 “login: “,脚本会等待 10 秒(默认超时时间),超时后 expect 命令返回,用户不会收到模式匹配失败的通知。
- 模式空格问题 :”Password: ” 模式末尾有一个空格,但实际收到的提示是 “Password:”,没有末尾空格,脚本同样会等待 10 秒。
为了找出这类问题,可以使用 exp_inter
超级会员免费看
订阅专栏 解锁全文
5919

被折叠的 条评论
为什么被折叠?



