ncurses - 期望:睡眠在错误的时间执行

时间:2010-02-08 13:55:47

标签: expect ncurses

我有一些ncurses应用程序需要自动重复测试。 我在“发送”命令之间放置“sleep”命令。但是,我看到的是,在屏幕加载之前,所有睡眠都在开始时执行。期望连接发送(我在睡眠期间在屏幕底部看到)然后将它们一起发布。

我尝试使用“send -s”或“send -h”发送所有密钥。这有点帮助。我用“-b”替换了第1行的“-f” - 这又是一个微小的差异。

为什么“睡眠”不能在适当的时间暂停。 顺便说一句,我的程序有一个getc()循环,所以我不能使用“expect”命令。我也试过了。

#!/usr/bin/expect -f
spawn ruby testsplit.rb
#expect
set send_human {3 3 5 5 7}
set send_slow {10 1}
exp_send -s -- "--"
exec sleep 3
send -s "+"
send -s "="
sleep 1
send -h -- "-"
send -h -- "-"
sleep 1
send -h  -- "v"
interact

1 个答案:

答案 0 :(得分:0)

我猜你需要在继续发送和睡眠之前等待你的ruby程序启动。 ruby程序启动时是否输出任何字符串(例如“就绪”)?如果是这样,在你期望被注释掉的地方,我会尝试expect "ready",以便Expect将等到ruby程序开始后再继续。