Bash Expect脚本将继续运行,即使Expect与任何内容都不匹配
无论expect“5555”上写了什么值,该命令仍在工作,并且我有ssh连接。您应该设置超时和超时后的操作:Bash Expect脚本将继续运行,即使Expect与任何内容都不匹配,bash,expect,Bash,Expect,无论expect“5555”上写了什么值,该命令仍在工作,并且我有ssh连接。您应该设置超时和超时后的操作: #!/usr/bin/expect spawn ssh admin@10.10.10.10 -o StrictHostKeyChecking=no expect "5555:" send "$password\n" expect "% " send "exit\n" 一些额外信息:默认超时为10秒。当e
#!/usr/bin/expect
spawn ssh admin@10.10.10.10 -o StrictHostKeyChecking=no
expect "5555:"
send "$password\n"
expect "% "
send "exit\n"
一些额外信息:默认超时为10秒。当
expect
ing某些内容时,如果在$timeout
秒后没有看到模式,则没有“timeout”模式的expect
命令将返回,脚本将继续执行。这是一个合法的问题,但在我看来可能是一个错误。你想达到什么目标?也许有更好的方法。@DanZaltsman:但我想它需要等待几秒钟,直到它继续运行?看看我的。它的违约更为合理。您可以使用shell脚本编写Expect。在发送“exit\r”
后,您应该期望eof
允许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"