bash 何时停止导出 SHELL?

bash 何时停止导出 SHELL?

我将 Debian 盒子从 stable 升级到 Jessie,我注意到 SHELL 不再导出,因此 screen 和类似的程序开始运行子 shell,而不是 bash。

此变更是何时做出的以及原因是什么?

答案1

很久很久以前:

本文档详细介绍了此版本 bash-2.05a-rc1 与之前版本 bash-2.05a-beta1 之间的更改。

  1. 对 Bash 的更改

……

w。 Bash 不再自动导出 HOME、PATH、SHELL 或 TERM,尽管如果它们未出现在初始环境中,它会为它们提供默认值。

SHELL我不知道原因是什么,但这是有道理的:如果未设置,则没有理由运行 bash 脚本来设置劣质进程。 Bash 只导出PWD(因为它应该这样做,无论有什么好处),OLDPWD( 的同伴PWD)和SHLVL(应该总是由 shell 设置)。


通常设置为您的登录 shell 的原因是它是由登录程序( 、等)SHELL在环境中设置的。杰西应该还是这样。如果某些登录方法未设置,则可能是登录方法中的错误。loginsshdSHELL

相关内容