[仅在屏幕上显示某些文本后才发送期望脚本中的命令

问题描述 投票:0回答:1

我正在编写一个期望脚本,该脚本将与旨在从网站下载日志文件的程序交互。它像:

Expect 
spawn program link
send "\n"
send "\n

这将开始下载文件。

但是文件很长,下载时间有所不同(取决于Internet的速度),因此我无法指定超时或直接休眠。但是,下载文件后,将显示[确定]文本。下载文件后的输出是[确定]下载完成


因此,我希望使脚本符合预期,以便一旦下载文件并在屏幕上显示文本[OK],它将进一步发送另一个命令以退出或退出并开始另一个下载。

我尝试使用:

Spawn program 
Expect "OK" or expect "\[OK]" 
Send command

但是没有用。

我该怎么做?

linux expect
1个回答
0
投票

!/ bin / expect

生成程序url_to_log_file发送“ \ n”#这将发送回车发送“ \ n”#这将发送回车在上述两个发送文件之后,将开始下载。下载结束时它将显示文件名

[确定]下载完成

发送q#这将退出程序

所以问题是我应该如何使用期望等到下载完成后再发送q退出。我用过期望[[OK]]发送q,但是即使下载完成也不会退出

© www.soinside.com 2019 - 2024. All rights reserved.