我有一个场景,我将连接到远程机器并在期望中执行一个命令(优先级),它会给出一个输出。我正在检查确切的模式,如果成功,我需要打开一个由上面执行的命令创建的文件。
我需要转到指定的目录并打开文件并解析我在 tcl 中使用 expect 的文件,下面提到了代码
#!/home/pub/bin/expect -f
spawn telnet 172.16.67.213 23
expect "login name:"
send "administrator\r"
expect "password:"
send "Administrator1@\r"
expect "Windows NT Domain:"
send "\r"
expect "C:\WINNT\Profiles\Administrator>"
send "\r"
expect "C:\WINNT\Profiles\Administrator>"
send "x -j Y -a run -d\r"
sleep 60
expect "ZZ"
****if {[string match *Z* $expect_out(buffer)]} {
send "dir";} else {
puts "Script failed";
}****
这里脚本正在执行直到字符串匹配,成功时下一个命令发送“dir”不执行。
如果我替换如下的逻辑,我将得到 echo 语句,但如果我想在它不成功后执行其他命令,则返回。
**if {[string match *Z* $expect_out(buffer)]} {
puts "Script passed";} else {
puts "Script failed";
}**
我希望问题很清楚,我正在尝试所有方法但没有成功..
在此先感谢,卡梅什。