如何使期望脚本期望多个文本之一

如何使期望脚本期望多个文本之一

下面是一个示例片段,通常它可以正常工作,除非我们传递一些关闭服务器或导致断开连接的命令。

为了处理这个问题,发送后是否可以期待“#”或eof指令

  send "${_cmd_}\r"
     expect "#"
      send "exit\r"

答案1

当然,如果连接关闭,expect将对特殊模式做出反应eof。你想做的是这个

  • 如果连接关闭,则预期eof
  • 如果看到提示,请发送exit命令,然后继续等待eof
send "$_cmd_\r"
expect {
    "#" {
        send "exit\r"
        exp_continue
    }
    eof
}
# do something after the connection is closed

相关内容