问题描述
#!/usr/bin/expect
spawn ssh admin@10.10.10.10 -o StrictHostKeyChecking=no
expect "5555:"
send "$password\n"
expect "% "
send "exit\n"
无论写什么值,都期望“ 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
命令而没有一个“超时”模式会简单地返回,脚本将继续