我默认使用“zsh”。
但是当我在 zsh shell 中时,我输入“bash”切换到 bash,为什么 $SHELL 变量没有改变?
我可以让屏幕使用在执行“屏幕”命令之前的任何 shell 吗?
zsh % screen
<the shell is zsh>
zsh % bash
bash $ screen
<the shell is still bash, can I make screen to automatically start bash here>
答案1
SHELL 变量(以及一些其他变量,如 HOME 和 USER)由您登录的进程设置。它被设置为 passwd 数据库 (/etc/passwd) 中设置的登录 shell 值。它并不反映您当前正在使用的 shell。
screen 使用 SHELL 变量来确定在 screen 中运行哪个 shell,因此你可以通过运行以下命令来覆盖它:
SHELL=/bin/bash screen
如果您希望 bash 而不是 zsh 作为您的登录 shell,您可以运行chsh
(频道安热什以您的用户身份运行 ell) 命令。