我有一个需要不断处理的过程。
- 它要求我运行一个命令,然后输入几条信息。
- 然后我看到一个列出几个选项的 curses 菜单。
前半部分很容易用 expect 实现自动化。而后半部分我不清楚有什么简单的方法可以实现自动化。
有什么建议么?
答案1
不幸的是,expect(来自任何语言)并不真正适合非标准屏幕缓冲区响应。我见过一些尝试处理光标位置更新的实现,例如 curses,但结果并不总是有效的。
我觉得您最好花时间研究一下 curses 应用程序为您提供了哪些操作,以便您自己配置应用程序并自行执行这些操作。我发现几乎每个 curses 菜单都有一个配套的 cli cmd,或者是一个前端。
如果你能分享一下 curses 菜单,社区也许能帮助你解决后台发生的事情。如果你不能,因为它是自己开发的东西,你应该能够用类似这样的代码来捕获后台发生的事情strace
希望这可以帮助。
答案2
查看hpuifilter
随附的实用程序馊。它最初是为了帮助 RANCID 的 expect 脚本处理 HP 交换机的类似 curses 的菜单而编写的。但是,它是作为过滤器编写的,因此您可以将 curses 应用程序导入其中,它将输出删除 VT100 控制序列的纯文本,这应该更容易在 expect 中处理。