我使用expect创建了一个expect脚本,并且我意识到expect -exact的构造是为了匹配包含大量不必要输出的行。例如,当我执行 postgresql restore 命令时,所有 psql 输出都包含在 expect -exact 行中。
可以使用哪些其他语法来修剪 expect -exact 行?在某些情况下可以删除它们吗?
通过观察会话中的活动来生成脚本的工具肯定容易认为过于重要。他们根本不明白什么是重要的。通常,摆脱不必要的预期片段的方法是使用文本编辑器将它们删除。需要注意的地方是您即将到达的地方send
(或exp_send
;有一些变化);在 a之前总是有 aexpect
的东西send
是个好主意,但是应该是什么需要你的一些聪明才智。
稍后,您可能想要编写脚本来处理多个条件,在这些条件下通过expect
一次 ing 几件事来采取行动。那是你写这样的东西的时候:
expect {
"abc" {
send "foo\r"
}
"def" {
send "bar\r"
}
}
自动化访问应用程序的复杂性比最初看起来要复杂得多,因为应用程序通常比最初看起来要复杂得多。