0

我使用expect创建了一个expect脚本,并且我意识到expect -exact的构造是为了匹配包含大量不必要输出的行。例如,当我执行 postgresql restore 命令时,所有 psql 输出都包含在 expect -exact 行中。

可以使用哪些其他语法来修剪 expect -exact 行?在某些情况下可以删除它们吗?

4

1 回答 1

0

通过观察会话中的活动来生成脚本的工具肯定容易认为过于重要。他们根本不明白什么是重要的。通常,摆脱不必要的预期片段的方法是使用文本编辑器将它们删除。需要注意的地方是您即将到达的地方send(或exp_send;有一些变化);在 a之前总是有 aexpect东西send是个好主意,但是应该是什么需要你的一些聪明才智。


稍后,您可能想要编写脚本来处理多个条件,在这些条件下通过expect一次 ing 几件事来采取行动。那是你写这样的东西的时候:

expect {
   "abc" {
      send "foo\r"
   }
   "def" {
      send "bar\r"
   }
}

自动化访问应用程序的复杂性比最初看起来要复杂得多,因为应用程序通常最初看起来要复杂得多。

于 2012-07-01T12:49:28.357 回答