如何在期望中保存变量中的预期响应 [英] how to save the expected response in a variable in expect

查看:83
本文介绍了如何在期望中保存变量中的预期响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的下面的脚本有效,但试图让它变得更聪明。我想要它做的是解析响应,例如AR1_6在执行.AR1_6中并将其作为变量发送到proc send_packet_from_bsd而不是每个响应都有一个案例。

My script below works but trying to make it smarter. What I'd like for it to do is to parse the response, such as, AR1_6 in "execute . AR1_6" and send that as variable in proc send_packet_from_bsd instead of having a case for every response.

while { [gets $tests_to_run TEST] >= 0 } {

   set test_done 0

   send "t $TEST\r"
   sleep 2
   while { $test_done == 0 } {
      expect {
         "execute . AR1_6" { send_packet_from_bsd "AR1_6" }
         #"execute . AR1_16" { send_packet_from_bsd  "AR1_16" }
         #"execute . AR1_14" { send_packet_from_bsd  "AR1_14" }
         #"execute . AR1_1" { send_packet_from_bsd  "AR1_1" }
         "Test \* Complete" { set test_done 1 }
      }
   }
}

推荐答案

tests_to_run TEST]> = 0 } {

set test_done 0

发送 t
tests_to_run TEST] >= 0 } { set test_done 0 send "t


TEST\
sleep < span class =code-digit> 2
while {
TEST\r" sleep 2 while {


test_done == 0 } {
expect {
执行。 AR1_6 {send_packet_from_bsd AR1_6}
执行。 AR1_16 {send_packet_from_bsd AR1_16}
执行。 AR1_14 {send_packet_from_bsd AR1_14}
执行。 AR1_1 {send_packet_from_bsd AR1_1}
测试\ *完成 {set test_done 1 }
}
}
}
test_done == 0 } { expect { "execute . AR1_6" { send_packet_from_bsd "AR1_6" } #"execute . AR1_16" { send_packet_from_bsd "AR1_16" } #"execute . AR1_14" { send_packet_from_bsd "AR1_14" } #"execute . AR1_1" { send_packet_from_bsd "AR1_1" } "Test \* Complete" { set test_done 1 } } } }


这篇关于如何在期望中保存变量中的预期响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆