跳转到脚本标签¶
语法¶
goto <label>
示例¶
无限打印 "hello world"¶
:loop
echo Hello world
goto loop
跳转到计算出的标签¶
goto host_${hostname} || goto unknown
描述¶
跳转到脚本标签。此命令只能在 iPXE 脚本中使用。
命令状态¶
| 失败 | 标签不存在 |
|---|---|
此命令在逻辑上不可能成功返回。
另请参阅¶
incissetiseqexit- iPXE 脚本指南
- 全部 iPXE 命令列表
备注¶
如果你用 goto 在操作成功时跳转到某个标签,那么你还必须考虑操作失败时会发生什么。例如:
dhcp && goto dhcp_ok
如果 dhcp 命令失败,脚本会立即终止,如脚本指南所述。要避免这个问题,可以使用 || 运算符:
dhcp && goto dhcp_ok ||
与所有 iPXE 命令一样,任何设置(如 ${hostname})都会被展开。因此可以使用动态生成的标签作为 goto 命令的目标。例如,如果 DHCP 提供的主机名是 thinclient1,那么命令
goto host_${hostname}
会跳转到标签 host_thinclient1。
使用动态生成的标签时,通常最好包含一个回退标签,以防动态生成的标签不存在。例如:
#!ipxe
dhcp
goto host_${hostname} || goto unknown
:host_thinclient1
sanboot iscsi:192.168.0.1::::iqn.2010-04.org.ipxe:winxp
:host_thinclient2
sanboot iscsi:192.168.0.1::::iqn.2010-04.org.ipxe:win7
:unknown
echo Unknown host ${hostname}
你可以使用 inc 和 iseq 命令构造简单的循环。