无忧启动论坛

标题: find --set 如何指定变量? [打印本页]

作者: zhanglei1371    时间: 4 天前
标题: find --set 如何指定变量?
比如这个命令:
find --set-root /ISO/MyISO.ISO
RUN  /ISO/MyISO.ISO
但是RUN模块在另一个分区的MOD目录下,用命令:
find --set-root /MOD/RUN
也能找到,但是就是两者不在同一个分区。


有两个问题:
(1)如何让这句能正常运行RUN  /ISO/MyISO.ISO?也就是如何让RUN放在一个公共目录,就像windows的环境变量一样,运行CMD能打开命令行窗口,G4D如何做到同样的效果?
(2)若是在不同的分区,有没有办法设置个变量,如%myrun%,第一次set -root后赋予这个变量,然后通过%RUN%  /ISO/MyISO.ISO来运行?


作者: 邪恶海盗    时间: 4 天前
直接用0PE的RUN模块不香?


二○二四年十一月二十四日
作者: 2011yaya2007777    时间: 4 天前
find  /MOD/RUN  |  set bd=
find --set-root /ISO/MyISO.ISO
%bd%/MOD/RUN  /ISO/MyISO.ISO

作者: wangyibin    时间: 4 天前
本帖最后由 wangyibin 于 2024-11-24 20:12 编辑

不是我的专长 给你搜索了一下 你看有没有帮助
问题1:如何让RUN命令在一个公共目录下运行
在GRUB中,你可以使用环境变量来达到类似Windows环境变量的效果。GRUB使用的是set命令来设置变量。以下是你可以尝试的方法:

设置一个环境变量指向公共目录:
  1. set run_dir=/path/to/public/directory
复制代码
修改你的RUN命令:
  1. find --set-root /ISO/MyISO.ISO
  2. set run_path=$root/ISO/MyISO.ISO
  3. set run_cmd="$run_dir/RUN $run_path"
  4. $run_cmd
复制代码
这里,run_dir是你的公共目录,run_path是你的ISO文件路径,run_cmd则是构建的完整命令行。

在不同的分区:
如果RUN模块在不同的分区,你可能需要先加载这个分区,然后设置路径。例如:
  1. # 假设你的公共目录在(hd0,msdos1)
  2. set root=(hd0,msdos1)
  3. set run_dir=/MOD
  4. find --set-root /ISO/MyISO.ISO
  5. set run_path=$root/ISO/MyISO.ISO
  6. set run_cmd="$run_dir/RUN $run_path"
  7. $run_cmd
复制代码

问题2:在不同分区设置变量
设置变量:
  1. find --set-root /ISO/MyISO.ISO
  2. export myrun=$root/ISO/MyISO.ISO
复制代码
这里,export命令将变量myrun设置为环境变量,使其在后续命令中可用。

使用变量运行命令:
  1. set root=(hd0,msdos1)
  2. set run_dir=/MOD
  3. set run_cmd="$run_dir/RUN $myrun"
  4. $run_cmd
复制代码
注意,GRUB不直接支持%variable%格式的变量引用,你需要使用$variable的形式来引用变量。

注意事项:
分区和设备的识别:确保你使用正确的分区和设备标识符(如(hd0,msdos1)),这些标识符在GRUB中是动态的,可能需要根据实际情况调整。
变量作用域:GRUB的变量在脚本中是全局的,但如果你在不同的脚本或环境中使用这些变量,确保它们被正确设置和导出。
路径问题:在GRUB中,路径需要特别注意,因为它使用的是GRUB的文件系统,而不是操作系统的文件系统。



作者: yyz2191958    时间: 4 天前
wangyibin 发表于 2024-11-24 18:23
不是我的专长 给你搜索了一下 你看有没有帮助
问题1:如何让RUN命令在一个公共目录下运行
在GRUB中,你可 ...

助人为乐
作者: zhanglei1371    时间: 4 天前
wangyibin 发表于 2024-11-24 18:23
不是我的专长 给你搜索了一下 你看有没有帮助
问题1:如何让RUN命令在一个公共目录下运行
在GRUB中,你可 ...

请问,上面的命令,您亲自测试过么?
我亲自测试了下,发现一个也不对。
反而是上面@2011yaya2007777 大师的,用了%bd%变量的没有任何问题。【而你却说:GRUB不直接支持%variable%格式的变量引用,显然是错误的】
你的答案不会是AI生成的吧???
作者: zhanglei1371    时间: 4 天前
zhanglei1371 发表于 2024-11-24 19:49
请问,上面的命令,您亲自测试过么?
我亲自测试了下,发现一个也不对。
反而是上面@2011yaya2007777  ...

全是错的,没有一点帮助。浪费了我不少时间。
作者: wang1126    时间: 3 天前
谢谢4楼分享
作者: zhanglei1371    时间: 3 天前
wang1126 发表于 2024-11-25 06:17
谢谢4楼分享

谢分享啥?你都没有仔细看我的回复?都是错的
作者: guong    时间: 3 天前
来学习了
作者: lisaustb    时间: 3 天前
学习了
作者: szwp    时间: 3 天前
yyz2191958 发表于 2024-11-24 19:08
助人为乐

3楼简洁
作者: yyz2191958    时间: 3 天前
2011yaya2007777 发表于 2024-11-24 17:50
find  /MOD/RUN  |  set bd=
find --set-root /ISO/MyISO.ISO
%bd%/MOD/RUN  /ISO/MyISO.ISO

好人
作者: 2012fengxi    时间: 前天 07:45
学到了,谢谢
作者: fruds9981    时间: 前天 08:17
佬大好人,支持点赞




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