【问题标题】:Expect script to select options in GRUB menu期望脚本在 GRUB 菜单中选择选项
【发布时间】:2016-06-16 03:56:24
【问题描述】:

是否可以在 GRUB 菜单中选择选项来选择适当的选项来启动设备?

我有一个到设备的串行连接,我正在编写期望脚本来发送向下箭头键,以便在启动时在 GRUB 菜单中选择适当的选项。但由于某种原因,它没有成功。

expect "GRUB loading."
#down arrow
send {^[\[B}

send "\r"
send "\r"

【问题讨论】:

  • ^[\[B 可能不是您想要发送的。试试send \x1F
  • 至少在 Linux 中是 ^[[B 表示向下箭头。我什至尝试使用 \x1F,但我仍然面临同样的问题
  • 你能看到如果你按下向下键会发送什么字节吗?
  • 我运行了 autoexpect,它说 ^[[B

标签: automation expect grub


【解决方案1】:

由于您使用的是大括号,因此您无需转义[

send -- {^[[B}  ;# where "^[" is entered with ctrl-V Esc

或者使用双引号,其中左括号确实需要转义,但键入转义字符更容易。

send -- "\033\[B"

【讨论】:

  • 即使尝试了上述选项......似乎它不起作用。不知何故,在 grub 菜单中它没有选择第二个选项
  • 尝试使用autoexpect 记录手动会话并查看生成的内容。
  • 我试过 autoexpect ... 它只使用“send {^[[B}”]
【解决方案2】:

在尝试了多种使用expect 发出“向下箭头”的方法后,我设法使用 grub2 使其工作:

send \003N

这会发送 Ctl+N,它用作辅助向下箭头,在这里可以更好地查看和解释: https://unix.stackexchange.com/questions/137323/grub2-without-arrow-keys

【讨论】:

    猜你喜欢
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    相关资源
    最近更新 更多