مهلة لا يعمل مع 'إعادة' العلم في توقع السيناريو
سؤال
أنا أحاول أن نتوقع سيناريو العمل ، عند استخدام إعادة العلم (الاحتجاج العادية تحليل التعبير) ، "مهلة" الكلمة يبدو لم تعد تعمل.عندما التالي يتم تشغيل البرنامج النصي ، أحصل على رسالة 'مهلة في الخطوة 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"}
}
نصائح أخرى
نعم ، "إعادة" العلم كما يظهر في سؤالك سوف تنطبق على كل نمط في تتوقعها القيادة.وبالتالي فإن "مهلة" يصبح نمط "-إعادة مهلة" ، وفقدان الخصوصية المميزة.
لا تنتمي إلى StackOverflow