UEFI开发学习25 – EFI Shell 环境变量

前言

进入Efi Shell的时候,最后有个倒计时提示:Press ESC in xx seconds to skip startup.nsh or any other key to continue.

意思是在xx秒后将执行startup.nsh此脚本,按ESC键退出执行,其它键则继续执行。为了此脚本能够被执行,一般都会将它放到FAT分区的U盘根目录中,这样进入shell 5秒后,startup.nsh将会被执行,可实现自动化执行功能。

Efi Shell是如何知道startup.nsh放在哪个分区中的呢?它就是环境变量。

一、windows环境变量

在操作系统中,环境变量可以用来指定可执行程序的路径,系统在调用程序的时候,会在环境变量中执行指定的程序。如编译EDK2代码用到的工具Python,如果要让系统可以调用,则需要在系统环境变量中,添加安装路径。

脚本在调用python命令的时候,将在设置的环境变量中逐个搜索,如果均失败,则提示命令不存在。如上图的环境变量,系统将做如下尝试

%SystemRoot%\system32\python.exe
%SystemRoot%\python.exe
%SystemRoot%\System32\Wbem\python.exe
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\python.exe
%SYSTEMROOT%\System32\OpenSSH\python.exe
d:\Program Files\Git\cmd\python.exe
D:\software\build\BuildTools\Python37\python.exe

除了在系统中设置,也可以在控制台中指定:

set path=D:\software\build\BuildTools\Python37;%path%

二、Efi Shell环境变量

Efi Shell中同样也有环境变量,可以使用set命令查看:

可以看到,FAT分区下的efi\tools、efi\boot、\(反斜杠表示根目录)三个目录被自动添加到了环境变量path中,这样不用进入到任何分区目录,也可以执行这三个目录下的nsh脚本或efi程序,这也就是startup.nsh放到根目录下可以被执行的原因了。

如将Hello.efi放在efitools下,可以直接执行Hello:

三、SET 命令

SET是环境变量查看和编辑命令,可以对环境变量进行修改、删除和添加操作,其中-v参数表示添加的变量是临时有效的,重启后将消失。

版权声明:
作者:bin
链接:https://ay123.net/mystudy/uefi/1627/
来源:爱影博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
UEFI开发学习25 – EFI Shell 环境变量
前言 进入Efi Shell的时候,最后有个倒计时提示:Press ESC in xx seconds to skip startup.nsh or any other key to continue. 意思是在xx秒后将执行startup……
<<上一篇
下一篇>>
文章目录
关闭
目 录