当我切换shell时$ SHELL变量没有改变

我默认使用’zsh’。

但是当我在我的zsh shell中时,我输入’bash’切换到bash,为什么$ SHELL变量不会改变?

在执行’screen’命令之前,我可以让屏幕使用我正确的shell吗?

zsh % screen  zsh % bash bash $ screen  

SHELL变量(以及一些其他变量,例如HOME和USER)由登录您的进程设置。它设置为passwd数据库(/ etc / passwd)中设置的登录shell值。 它并不意味着反映您当前使用的shell。

screen使用SHELL变量来确定在屏幕内运行的shell,因此您可以通过运行eg来覆盖它

 SHELL=/bin/bash screen 

如果你想让bash成为你的登录shell而不是zsh,你可以像你的用户一样运行chshch ange sh ell)命令。