期待:相同的模式,不同的答案

时间:2017-04-21 19:40:29

标签: bash expect

我正在尝试在类似菜单的脚本上自动执行答案以启动/停止专属服务。

首先,菜单会询问您尝试影响哪种类型的服务(按1)。然后,要求您执行(按2停止)的操作。然后,执行操作并告诉您按任意键继续,这会将您带回“操作”菜单,您必须按0返回第一个菜单,然后再次按0退出。

问题是,如果我只是忽略服务停止后的步骤,下次进入菜单脚本时,它会跳过第一部分并直接进入“操作”菜单(它保存您选择的选项)第一个菜单,但我不知道在哪里。

第二次看到“操作”菜单时,有没有办法告诉期待send "0"

这是我现在的剧本:

#!/usr/bin/expect
set startstop [lindex $argv 0]

if {$startstop == "start"} {
  set sendnumber "1"
} elseif {$startstop == "stop"} {
  set sendnumber "2"
} else {
  exit 0
}

log_user 0
spawn ./menuscript.sh
expect {
  "first menu" {
    send "1"
    exp_continue
  }
  "action menu" {
    send "$sendnumber"
    exp_continue
  }
  "Press any key to continue" {
    send "\r"
    exit 1
  }
}

0 个答案:

没有答案