$HOME 环境变量是否总是在 Linux 系统上设置?

yan*_*han 22 environment-variables home

假设机器运行的是 Linux 内核,会话使用 Bash shell 并且一切都使用默认配置(没有用户对配置文件进行任何更改),我们是否可以假设$HOME环境变量始终设置?

Joh*_*024 25

是的。该POSIX规范 要求的OS为$ HOME设置的值:

HOME
系统应在登录时将此变量初始化为用户主目录的路径名。见密码.h。

用户nobody呢?

# su - nobody
No directory, logging in with HOME=/
$ echo $HOME
/
Run Code Online (Sandbox Code Playgroud)

即使nobody没有真正的家,也HOME被设置为根目录。