我将 Debian 盒子从 stable 升级到 Jessie,我注意到 SHELL 不再导出,因此 screen 和类似的程序开始运行子 shell,而不是 bash。
此变更是何时做出的以及原因是什么?
答案1
很久很久以前:
本文档详细介绍了此版本 bash-2.05a-rc1 与之前版本 bash-2.05a-beta1 之间的更改。
- 对 Bash 的更改
……
w。 Bash 不再自动导出 HOME、PATH、SHELL 或 TERM,尽管如果它们未出现在初始环境中,它会为它们提供默认值。
SHELL
我不知道原因是什么,但这是有道理的:如果未设置,则没有理由运行 bash 脚本来设置劣质进程。 Bash 只导出PWD
(因为它应该这样做,无论有什么好处),OLDPWD
( 的同伴PWD
)和SHLVL
(应该总是由 shell 设置)。
通常设置为您的登录 shell 的原因是它是由登录程序( 、等)SHELL
在环境中设置的。杰西应该还是这样。如果某些登录方法未设置,则可能是登录方法中的错误。login
sshd
SHELL