运行 tcsh 但 bash 改为启动

1 linux bash shell tcsh csh

我试图在我的 Fedora 7 上启动一个 tcsh(默认 shell 是 bash)

[ss@ssvm ~]$ tcsh
[ss@ssvm ~]$ echo $SHELL
/bin/bash
Run Code Online (Sandbox Code Playgroud)

如您所见,另一个 bash shell 启动了。

我查看了 tcsh 文件:

[ss@ssvm ~]$ ll /bin/tcsh
-rwxr-xr-x 1 root root 345348 2007-02-26 23:58 /bin/tcsh
[ss@ssvm ~]$ ll /bin/csh
lrwxrwxrwx 1 root root 4 2010-03-07 13:13 /bin/csh -> tcsh
Run Code Online (Sandbox Code Playgroud)

它不是链接(但 csh 是)。我不明白为什么会这样。如果您有想法或需要更多信息,请告诉我。谢谢!

XM

小智 5

简短回答:SHELL环境变量代表您的用户配置文件的默认 shell,而不是您当前正在与之交谈的 shell。它由产生子外壳的程序使用。

或者,检查您.cshrcexec bash命令。我曾经在一个不允许用户从 csh 更改其默认 shell 的站点上这样做。