使用bash后SHELL环境变量仍然指向zsh

Jac*_*son 7 shell bash zsh

我试图在 zsh 和 bash 之间跳转。

默认情况下,我将 zsh 作为我的 shell,我可以通过键入以下内容来了解​​这一点:

echo $SHELL 我得到 /bin/zsh

但是,我想打开 Bash,所以我输入/bin/bash; 我假设我现在在 bash 中,但是如果我回声,$SHELL我仍然会得到/bin/zsh

请问怎么了?

Jef*_*ler 6

SHELL 是一个环境变量,当您调用 zsh 时,它会从 bash 传递到 zsh。SHELL 不是zsh 中Shell 设置的参数之一,因此它的值保持不变。

bash$ SHELL=turtle zsh
zsh$ echo $SHELL
turtle 
Run Code Online (Sandbox Code Playgroud)

要了解您是否处于 zsh shell 中,请尝试:

echo $ZSH_NAME
echo $0
Run Code Online (Sandbox Code Playgroud)

SHELL变量传统上由程序设置login,“由密码数据库指定”。(复制自什么设置了 $SHELL 环境变量?