无忧启动论坛

标题: 这个grub4dos内置菜单,为什么没有进入死循环呢? [打印本页]

作者: 小小菜    时间: 2009-12-19 19:02
标题: 这个grub4dos内置菜单,为什么没有进入死循环呢?
内置菜单内容如下,#后面是我的解释:
  1. find --set-root --ignore-cd /message
  2. #在各个设备(CD不算)查找message文件,将第1个有message文件的设备设置为root。

  3. gfxmenu /message && configfile (md)4+1
  4. #驱动gfx菜单文件message,如果成功,则执行内置菜单。

  5. #疑问:按理说,这会儿应该又转到第一行,查找message文件,再驱动message,而不是显示下面菜单。

  6. #但是在实践中,这种写法并没有进入死循环。何解?

  7. default 0
  8. timeout -1
  9. title I'm title 1
  10.   sm.cmd...
  11. title I'm title 2
  12.   sm.cmd...
复制代码

[ 本帖最后由 小小菜 于 2009-12-19 19:05 编辑 ]
作者: sratlf    时间: 2009-12-19 21:08
gfxmenu /message 执行这一行时不会返回第一行查找   因为你第一行已经查找完了  不会重复查找
作者: 小小菜    时间: 2009-12-19 22:19
configfile (md)4+1
的意思是执行grldr的内置菜单。

gfxmenu
/message && configfile (md)4+1
这行的意思是gfxmenu /message执行成功了,再执行configfile (md)4+1

gfxmenu /message && configfile (md)4+1
并且,这行本身又是内置菜单的一部分

按理说,会是死循环的吧?

============================

刚试了,这样写就是死循环:
gfxmenu /message
configfile (md)4+1

这样写,就不会了:
gfxmenu /message && configfile (md)4+1

&&前面的执行成功了,后面的才会执行,这和不带&&区别不大啊?

[ 本帖最后由 小小菜 于 2009-12-19 23:49 编辑 ]
作者: chenall    时间: 2009-12-20 10:30
gfxmenu执行时的返回值如果是真才会执行&&后面的命令,
如果你的启动菜单成功了就当然就是进入你的菜单指定的内容了,
如果执行失败当然就返回失败了,

所以你可以试一下
使用 || 来代替 &&。
如果不行那就是gfxmenu命令的返回值有问题。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3