为什么一个简单的 print(os.getenv("HOME")) 会得到 nil?

seb*_*dev 7 null lua environment-variables

我是一个新手,我不明白为什么这不起作用,有人知道发生了什么事吗?

我正在关注一个教程,只是为了澄清一下,这只是一个print(os.getenv("HOME"))

Pig*_*let 11

如何解决这个问题:

print(os.getenv("HOME"))印刷nil。所以os.getenv("HOME")必须返回nil。

什么情况下os.getenv返回nil?我们参考Lua手册:

https://www.lua.org/manual/5.4/manual.html#pdf-os.getenv

os.getenv(变量名)

返回进程环境变量 varname 的值,如果未定义该变量,则失败。

fail等于nil。Lua < 5.4 返回 nil。

所以看起来像是HOME一个未定义的进程环境变量。

是否应该定义一下?应该从什么HOME开始呢?

让我们用谷歌搜索“环境变量主页”,我们看到的最前面的几个结果是:

https://superuser.com/questions/607105/is-the-home-environment-variable-normally-set-in-windows

我们正在运行Windows,否则我们一开始就不会在这里,所以让我们运行print(os.getenv("UserProfile"))吧,我们就会成功。