跳转至

提示用户按键

语法

  prompt [--key <key>] [--timeout <timeout>] [<text>]

示例

等待用户按任意键

  prompt

提示用户按键继续

  prompt Press any key to continue

如果按下 'q' 则退出脚本

  prompt --key q Press 'q' to quit && exit ||

除非 2 秒内按下 F12,否则退出脚本

  prompt --key 0x197e --timeout 2000 Press F12 to boot from network... || exit

给用户提供进入 iPXE shell 的机会

  prompt --key 0x02 --timeout 2000 Press Ctrl-B for the iPXE command line... && shell ||

描述

提示用户按键,显示指定的文本并等待指定的超时时间(毫秒)。如果没有显式指定超时时间,或指定为零超时,iPXE 会无限期等待。

如果在超时时间内按下了指定的按键,命令状态为成功。如果没有显式指定按键,则按下任意按键都算成功。

用户按键后或超时到期后,显示的文本会被清除。

--key 选项可以指定为字符字面量(例如 q@),也可以指定为扩展 ASCII 字符值。Ctrl-BF12 等特殊键的键值定义在 iPXE 源代码的 include/ipxe/keys.h 中。一些常用的键值:

按键 键码
Ctrl-A 0x01
Ctrl-B 0x02
Ctrl-C 0x03
Ctrl-Z 0x1a
F5 0x107e
F6 0x127e
F7 0x137e
F8 0x147e
F9 0x157e
F10 0x167e
F11 0x187e
F12 0x197e

命令状态

成功 在超时时间内按下了指定的按键
失败 在超时时间内没有按下指定的按键

另请参阅

备注

为了防止 prompt 命令导致脚本退出,你几乎总是会想要使用 || 运算符。例如,不要使用这样的行:

  prompt --timeout 1000 Press any key to install Linux && goto install

如果用户没有按键,prompt 命令就会失败并导致脚本立即退出。你可以使用 || 运算符来确保 prompt 命令的失败得到妥善处理,从而避免这个问题。例如:

  prompt --timeout 1000 Press any key to install Linux && goto install || goto no_install

  prompt --timeout 1000 Press any key to install Linux && goto install ||

关于 &&|| 运算符的更多信息,请参见 iPXE 脚本指南。

使用嵌入式脚本之后,启动时或引导失败时将不再出现 "Press Ctrl-B for the iPXE command line" 提示。你可以使用 prompt 命令生成自己的提示。例如:

  #!ipxe

  # Give user a chance to enter the shell
  prompt --key 0x02 --timeout 2000 Press Ctrl-B for the iPXE shell... || goto no_shell
  shell
  exit

  :no_shell
  # Boot the system
  ...