我想知道如何使期望脚本中的期望命令等待确切的字符串匹配,然后再继续脚本中的下一行。
Bourne shell (sh) 脚本:
#!/bin/sh
#!/usr/bin/expect
spawn ssh -Y localuser@lbblr-tirumala
expect -exact "localuser@lbblr-tirumala's password: "
# replace password with ur own passwd
send "geomax45\r"
# replace the prompt with ur own prompt
expect "localuser@lbblr-tirumala:~$ "
# 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 后,代码应该等待“Bye world\r......”字符串出现在屏幕上。但即使屏幕提示完全不同的字符串,代码正在执行下一行并输入选项 2,根据期望的定义,这不应该发生。它应该等到期望命令中的完整字符串匹配。
我想知道是否可以使用任何更严格的命令,以便期望等待直到发生精确的字符串匹配。请在这个问题上帮助我