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