为什么环境变量 (PATH) 在 bash 中起作用?

why environment variables (PATH) work in bash?

我正在尝试使用 c.

构建 bash

但是当我尝试这个时我遇到了这个问题:env -i bash

这应该将 void env 传递给 bash 因此所有环境变量都应该为 null

示例:

➜  ~ env -i bash --norc
bash-3.2$ env
PWD=/Users/mbari
SHLVL=1
_=/usr/bin/env
bash-3.2$ ls
#*mail*#78979jxq#       Documents               Pictures                result.log
Applications            Downloads               VirtualBox VMs          tmux-client-73012.log
Cleaner.sh              Library                 docker_start_up.bash    tmux-client-73105.log
Cleaner_42.sh           Movies                  file
Desktop                 Music                   goinfre
bash-3.2$ 

截图:

Bash 有一个默认路径,以防它不继承也不设置 PATH。它被定义为 DEFAULT_PATH_VALUE in bash sources,虽然源代码中有一些默认值,但通常发行版会在构建脚本中覆盖此值。当您构建自己的 shell 时,您可能会发现该配置文件很有趣。