如果基于输入执行时间,则为expect脚本设置超时

时间:2016-08-04 06:32:03

标签: shell scripting tcl expect

我有一个expect脚本,它执行远程shell脚本。现在执行shell脚本所花费的时间是基于输入的。更多的输入,更多的时间,更少的输入更少的时间。我应该如何设置我的超时值,因为如果将超时设置为-1,那么它将仅使用eof退出,并且如果脚本被挂起,那么我们将有一个挂起的会话。 / p>

1 个答案:

答案 0 :(得分:0)

在分析正在进行的脚本的输出模式后,我发现从输入文件中读取的所有行都会出现“OK”。所以,我用它作为进度指示器来重置我的超时计数器。 以下是我为解决问题而编写的代码部分:

send -- "bash scriptname.sh \r"
expect {
         -re "OK" {
                  exp_continue
                  }
         -re "Enter XYZ value:" {
                                   send "0000\r"
                                   }
         timeout {
                 exit
                 }
         eof     {
                 exit
                 }
       }