为什么 "echo $SHELL" 总是返回 /bin/tcsh
Why is "echo $SHELL" always returning /bin/tcsh
我有以下简单的 shell 脚本:
[test.sh]
#! /bin/bash
echo $SHELL
为什么在以下所有情况下我总是得到 /bin/tsch
的控制台输出?
1) 在终端中,运行 如下:
% ./test.sh
2) 在终端中,运行 如下:
% bash
$ ./test.sh
3) 在终端中,运行 如下:
% bash ./test.sh
正如您可能从 %
游标中看出的那样,终端默认以 tcsh 启动。我很困惑为什么脚本中的 #! /bin/bash
和命令行中的 bash
不影响 $SHELL
.
的值
参见手册中的Bash Variables:
SHELL
The full pathname to the shell is kept in this environment variable. If it is not set when the shell starts, Bash assigns to it the full pathname of the current user’s login shell.
我的重点。
如果您想要当前 bash 可执行文件的路径,请使用 $BASH
。请参阅上面的 link 到文档。
我有以下简单的 shell 脚本:
[test.sh]
#! /bin/bash
echo $SHELL
为什么在以下所有情况下我总是得到 /bin/tsch
的控制台输出?
1) 在终端中,运行 如下:
% ./test.sh
2) 在终端中,运行 如下:
% bash
$ ./test.sh
3) 在终端中,运行 如下:
% bash ./test.sh
正如您可能从 %
游标中看出的那样,终端默认以 tcsh 启动。我很困惑为什么脚本中的 #! /bin/bash
和命令行中的 bash
不影响 $SHELL
.
参见手册中的Bash Variables:
SHELL
The full pathname to the shell is kept in this environment variable. If it is not set when the shell starts, Bash assigns to it the full pathname of the current user’s login shell.
我的重点。
如果您想要当前 bash 可执行文件的路径,请使用 $BASH
。请参阅上面的 link 到文档。