期望脚本继续 运行 即使期望不匹配任何东西

Expect script continues to run even the expect does not match anything

#!/usr/bin/expect 
spawn ssh admin@10.10.10.10 -o StrictHostKeyChecking=no
expect "5555:"
send "$password\n"
expect "% "
send "exit\n"

无论在 expect "5555:" 上写入什么值,此命令仍然有效并且我有 ssh 连接。

您应该设置超时和超时后的操作:

#!/usr/bin/expect
set timeout 5 
spawn ssh admin@10.10.10.10 -o StrictHostKeyChecking=no
expect {
   "5555:"  { }
   timeout { exit 2 }
}
send "$password\n"
expect "% "
send "exit\n"

一些额外信息:默认超时为 10 秒。在 expect 执行某些操作时,如果在 $timeout 秒后仍未看到该模式,则 expect 命令 没有 一个“超时”模式 returns 并且脚本继续。