期望 - 不会根据需要发送文本

时间:2013-09-14 18:22:28

标签: linux send expect

我正在开发一个脚本,用于软件安装的回归测试。期望代码如下。前几行代码运行良好,浏览和同意许可文件。但是,脚本停止在“请输入有效许可证文件的路径名:”并且不执行任何操作。 (注意:手动安装顺利进行)。

另外,请注意所有输入的cursur始终位于显示文本的右侧;但是在最后一个提示的情况下(“请输入有效许可证文件的路径名:”),光标位于文本下方和下面的行中。我不确定这是否与此问题有关。

我做错了什么?我该如何调试此问题?我感谢你们的任何帮助。

由于 纳齐尔

以下是代码:

#!/usr/bin/expect
spawn ./temp 
expect {
         "More--*" {
               send " "
                exp_continue
                }
"Do you accept this license agreement?*" {
                 send "yes\r"
                 }
}
expect "Do you want to use the default path?*" { send "yes\r" }
expect "This load path does not exist. Do you want to create it?*" { send "yes\r" }
expect "Please enter the pathname to a valid license file:*" { send "/path_to_file\r" }
interact

以下是输出的显示方式:

.....(license stuff)

Do you accept this license agreement? [no] yes

Please specify where the xxx software will be loaded.
The default location is /usr/local/aaa.
Do you want to use the default path? [yes] yes

The software will not run without a valid license file installed.
Please enter the pathname to a valid license file:

1 个答案:

答案 0 :(得分:3)

您可以使用-d开关进行调试:

#!/usr/bin/expect -d

它非常冗长,并且帮助我确定了我在写作期间所做的无数小错字。