Expect

如何使期望腳本期望多個文本中的任何一個

  • August 14, 2018

下面是一個範例片段,通常它工作正常,除非我們通過一些關閉伺服器或導致斷開連接的命令。

為了處理這個問題,在發送cmd之後是否可以期待“#”或 eof 。

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

當然,如果連接關閉,expect 將對特殊模式做出反應eof。你想做的是這個

  • 如果連接關閉,期望eof
  • 如果看到提示,發送exit命令,然後繼續等待eof
send "$_cmd_\r"
expect {
   "#" {
       send "exit\r"
       exp_continue
   }
   eof
}
# do something after the connection is closed

引用自:https://unix.stackexchange.com/questions/462568