无忧启动论坛

 找回密码
 注册
搜索
【招募】优秀技术员,装机赚钱!最纯净的「微PE装机优盘」UEPON大师作品广告位出租 QQ:184822951
查看: 166|回复: 3

if语句无法使用,请各位大神帮忙找下原因,谢谢!

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式
本帖最后由 sunyu4506 于 2017-10-12 18:46 编辑

无标题.jpg
也不知道是不是生成文件的代码有问题
grub-mkimage.exe -d x86_64-efi -c x86_64-efi.cfg -p /boot/grub -o Bootx64.efi -O x86_64-efi part_gpt part_msdos disk fat exfat ext2 ntfs xfs appleldr hfs iso9660 normal reiserfs font search search_fs_file configfile linux linux16 chain loopback echo efi_gop efi_uga video_bochs video_cirrus file gfxmenu gfxterm gfxterm_background gfxterm_menu halt reboot help jpeg ls png all_video
x86_64-efi.cfg文件
  1. search.file /boot/grub/grub.cfg root
  2. set prefix=($root)/boot/grub
  3. configfile ($root)/boot/grub/grub.cfg
复制代码


代码
  1. #默认项
  2. set default=0;
  3. set fallback=1;
  4. #倒计时
  5. set timeout=15
  6. export timeout

  7. set pager=1
  8. #两种最流行的磁盘分区格式
  9. insmod part_gpt
  10. insmod part_msdos
  11. #常见文件系统驱动
  12. insmod btrfs
  13. insmod exfat
  14. insmod ext2
  15. insmod fat
  16. insmod iso9660
  17. insmod jfs
  18. insmod ntfs
  19. insmod reiserfs
  20. insmod udf
  21. insmod xfs
  22. insmod zfs
  23. #一次性加载所有可用的视频驱动
  24. insmod all_video
  25. #图形模式终端
  26. insmod gfxterm
  27. #背景图片支持
  28. insmod png
  29. insmod jpeg
  30. #添加支持模块
  31. insmod video_bochs
  32. insmod video_cirrus
  33. insmod efi_gop
  34. insmod efi_uga
  35. insmod font
  36. #提供主题支持
  37. insmod gfxmenu
  38. insmod gettext

  39. #加载unicode字体显示中文
  40. font=/boot/grub/fonts/unicode.pf2.gz
  41. if loadfont ${font}; then
  42. set locale_dir=/boot/grub/locale
  43. export locale_dir
  44. set lang=zh_CN
  45. fi

  46. #设置分辨率
  47. set gfxmode=auto
  48. export gfxmode
  49. terminal_output gfxterm

  50. set save_data="norootcopy nomagic"
  51. export save_data
  52. set copy2ram=""
  53. export copy2ram
  54. set noauto=""
  55. export noauto

  56. #设置主题或背景图片
  57. if search --no-floppy -f /boot/grub/themes/theme.txt ; then
  58.         set theme=/boot/grub/themes/theme.txt
  59. else
  60.         background_image /boot/grub/background.png
  61.         #设置颜色
  62.         set color_normal=red/black
  63.         set color_highlight=magenta/black
  64. fi
  65. export theme

  66. ###菜单项###
  67. menuentry '正常启动(Windows)' --unrestricted {
  68.     if [ 'pc' == $grub_platform ] ; then
  69.         if search --file --set --no-floppy /bootmgr ; then
  70.             chainloader +1
  71.         elif search --file --set --no-floppy /ntldr ; then
  72.             chainloader +1
  73.         else
  74.             echo '没有找到Windows'
  75.             sleep --verbose 5
  76.         fi
  77.     fi

  78.     if [ 'efi' == $grub_platform ] ; then
  79.         if search --file --set --no-floppy /EFI/Microsoft/Boot/bootmgfw.efi ; then
  80.             chainloader /EFI/Microsoft/Boot/bootmgfw.efi
  81.         else
  82.             echo '没有找到Windows'
  83.             sleep --verbose 5
  84.         fi
  85.     fi
  86. }

  87. if [ 'pc' == $grub_platform ] ; then
  88.     if search --file --set --no-floppy /os/WinPE.iso ; then
  89.         menuentry '系统救援(WinPE)' --users=root {
  90.             linux16  $prefix/memdisk iso raw
  91.             initrd16 /os/WinPE.iso
  92.         }
  93.     fi
  94. fi
复制代码



发表于 6 天前 | 显示全部楼层
  1. if [ "$grub_platform" = "efi" ] ; then
复制代码
 楼主| 发表于 6 天前 | 显示全部楼层
本帖最后由 sunyu4506 于 2017-10-12 19:59 编辑

不是这个问题,原来写成这样也试过if语句直接没执行,不知道是不是生成的Bootx64.efi文件有问题。
QQ截图20171012195815.jpg
  1. #默认项
  2. set default=0;
  3. set fallback=1;
  4. #倒计时
  5. set timeout=15
  6. export timeout

  7. #添加支持模块
  8. set pager=1
  9. insmod all_video
  10. insmod video_bochs
  11. insmod video_cirrus
  12. insmod efi_gop
  13. insmod efi_uga
  14. insmod font
  15. insmod gfxterm
  16. insmod gfxmenu
  17. insmod gettext
  18. insmod jpeg
  19. insmod png
  20. insmod vbe

  21. #加载unicode字体显示中文
  22. font=/boot/grub/fonts/unicode.pf2.gz
  23. if loadfont ${font}; then
  24. set locale_dir=/boot/grub/locale
  25. export locale_dir
  26. set lang=zh_CN
  27. fi

  28. #设置分辨率
  29. set gfxmode=auto
  30. export gfxmode
  31. terminal_output gfxterm

  32. set save_data="norootcopy nomagic"
  33. export save_data
  34. set copy2ram=""
  35. export copy2ram
  36. set noauto=""
  37. export noauto

  38. #设置主题或背景图片
  39. if search --no-floppy -f /boot/grub/themes/theme.txt ; then
  40.         set theme=/boot/grub/themes/theme.txt
  41. else
  42.         background_image /boot/grub/background.png
  43.         #设置颜色
  44.         set color_normal=red/black
  45.         set color_highlight=magenta/black
  46. fi
  47. export theme

  48. ###菜单项###
  49. #if [ "$grub_platform" == "efi" ]  then
  50.   if [ ${grub_cpu} == "x86_64" ] ; then
  51.     menuentry "Konboot 绕过密码 (64位)" --class konboot{
  52.       chainloader /efi/boot/konboot64.efi
  53.     }
  54.   fi
  55.   if [ ${grub_cpu} == "i386" ] ; then
  56.     menuentry "Konboot 绕过密码 (32位)" --class konboot{
  57.       chainloader /efi/boot/konboot32.efi
  58.     }
  59.   fi
  60. #fi
复制代码



点评

我记得应该用"="而不是"==",跟一般语言不一样.  详情 回复 发表于 6 天前
发表于 6 天前 | 显示全部楼层
sunyu4506 发表于 2017-10-12 18:30
不是这个问题,原来写成这样也试过if语句直接没执行,不知道是不是生成的Bootx64.efi文件有问题。

我记得应该用"="而不是"==",跟一般语言不一样.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|无忧启动 ( 闽ICP备05002490号-1

GMT+8, 2017-10-18 06:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表