|
当初grub4dos没有if,没有goto,没有批处理,没有外部命令,没有变量,我和chenall为能控制流程,把菜单当程序来写而挖空心思。
当时唯一能实现流程控制的就是fallback了,它能在出错后转到其它地方执行其它命令。
此外,errorcheck off......errorcheck on使得能连续执行一组语句,中途出错也无妨。
两者结合,就能控制出错时的流程:是继续执行后续一组语句还是转而执行别的一组语句。
最后,还需要有人为制造错误的能力, fallback F好像是我发明的写法,是狗屁不通的错误语句。当你想转往别处时,就来一句 fallback F人为制造错误,就能触发之前设定好的fallback跳转(类似goto效果)。
总之,在grub4dos功能还很弱的“远古时代”,要想实现goto之类的流程控制,得走歪门邪道,玩转可怜的fallback。
类似问题还有变量如何解决。
当初没有变量,我们通过读写0x60000处1KB空间来完成类似变量的存取,对读出的值用checkrange判断范围,其真假用来控制流向,实现类似if的效果。
也许正是这种绕大弯子才能达到目的的窘境,促成chenall加入grub4dos开发团队,去实现对g4d的一系列功能扩展,然后大家用上了goto、if、RUN... |
评分
-
查看全部评分
|