Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Expect脚本将继续运行,即使Expect与任何内容都不匹配_Bash_Expect - Fatal编程技术网

Bash Expect脚本将继续运行,即使Expect与任何内容都不匹配

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

无论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秒。当
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"