我正在尝试在类似菜单的脚本上自动执行答案以启动/停止专属服务。
首先,菜单会询问您尝试影响哪种类型的服务(按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
}
}