0

我有一个系统,在获取show-table[0]时打印0|-100|111.

我希望我的期望脚本$row作为参数接收并执行以下操作:

  1. 发送show-table[$row]

  2. 返回值-100(100 也可以)

这是我尝试过的:

set row [lindex $argv 0]

expect {
    "> " {send "show-table\[$row\]\n"}
    timeout { exit 1 }
}

expect {
    "\|*\|" {}
    timeout { exit 1 }
}

exit $expect_out(0,string)

2个问题:

  1. 我没有设法让脚本寻找我传递给它的参数
  2. 我没有管理使脚本仅返回 -100 或 100

有什么建议吗?

4

1 回答 1

0
  1. 您将参数传递给脚本的方式似乎是正确的。
  2. 发送命令后,您可以使用expect -re来匹配命令的输出:

    设置行 [lindex $argv 0]

    期望 { "> " {send "show-table[$row]\n"} timeout { exit 1 } }

    期望 -re {\d+\|(-?\d+)\|\d+} { puts $expect_out(1,string) }

    期待 eof

如果您想将此脚本输出返回到 shell,只需putsfromexpect可以执行此操作,即可exit提供此脚本的退出状态。

于 2012-09-10T03:33:06.937 回答