مهلة لا يعمل مع 'إعادة' العلم في توقع السيناريو

StackOverflow https://stackoverflow.com/questions/136554

  •  02-07-2019
  •  | 
  •  

سؤال

أنا أحاول أن نتوقع سيناريو العمل ، عند استخدام إعادة العلم (الاحتجاج العادية تحليل التعبير) ، "مهلة" الكلمة يبدو لم تعد تعمل.عندما التالي يتم تشغيل البرنامج النصي ، أحصل على رسالة 'مهلة في الخطوة 1" ، ثم "تبدأ الخطوة 2' وبعد ذلك مرات ولكن لا طباعة 'مهلة في الخطوة 2' أنا مجرد الحصول على جديد موجه.

أفكار ؟

#!/usr/bin/expect --

spawn $env(SHELL)
match_max 100000

set timeout 2

send "echo This will print timed out\r"
expect  {
    timeout { puts "timed out at step 1"  }
    "foo " { puts "it said foo at step 1"}
}

puts "Starting test two\r"

send "echo This will not print timed out\r"
expect  -re {
    timeout { puts "timed out at step 2" ; exit }
    "foo " { puts "it said foo at step 2"}
}
هل كانت مفيدة؟

المحلول

Figured it out:

expect  {
    timeout { puts "timed out at step 2" ; exit }
    -re "foo " { puts "it said foo at step 2"}
}

نصائح أخرى

نعم ، "إعادة" العلم كما يظهر في سؤالك سوف تنطبق على كل نمط في تتوقعها القيادة.وبالتالي فإن "مهلة" يصبح نمط "-إعادة مهلة" ، وفقدان الخصوصية المميزة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top