我想知道如何使指望命令expect腳本等待確切字符串繼續到下一行的腳本之前進行匹配精確的字符串。如何使指望命令期望程序腳本以等待匹配
Bourne外殼程序(SH)的腳本:
#!/bin/sh
#!/usr/bin/expect
spawn ssh -Y [email protected]
expect -exact "[email protected]'s password: "
# replace password with ur own passwd
send "geomax45\r"
# replace the prompt with ur own prompt
expect "[email protected]:~$ "
# run application
send "./sample\r"
expect "*Menu*\r
1. print hello world\r
2. print Bye world\r
3. quit\r
enter choice: "
# enter choice 1
send "1\r"
expect "Bye world\r
*Menu*\r
1. print hello world\r
2. print Bye world\r
3. quit\r
enter choice: $"
# enter choice 2
send "2\r"
在上面的代碼輸入1後的代碼應該等待 「再見世界\ r ......」 在屏幕上會出現串。但即使屏幕完全提示不同的字符串,代碼正在執行下一行並輸入選項2,根據期望的定義,該選項不應該出現。它應該等到expect命令中的完整字符串匹配。
我想知道是否有更嚴格的命令可以使用,以便期望等到發生完全字符串匹配時。請幫助我解決這個問題
加上'exp_internal 1'到腳本 - 將冗長告訴你現在想到的是試圖匹配,你就可以明白爲什麼匹配成功。 – 2012-04-09 11:34:36