环境变量必须属于一个进程,对吗?似乎存在事实上的“全局”环境变量,例如 $PATH 和 $HOME。它们属于哪个进程?
答案1
没有单个 PATH 变量,并且它不属于单个进程。
每个进程都有一个环境,它由键值对列表组成。键通常被命名为“变量”。该export
命令列出了该环境。进程从其父进程继承其环境(在 UNIX 中,甚至在父进程死亡之前就可以继承。这不是很好吗?)。
例如,您可以将任何变量放入环境中export birthday="Jan 23"
,但有些变量对于 shell 有特殊含义,例如 HOME 或 PATH。其他变量对于某些程序有特殊含义;例如,请参阅环境部分在该命令的手册页中man
。
综上所述,每个进程都有PATH和HOME。