我想知道 $0 和 $SHELL 之间的确切区别。我知道这两个是用来知道shell信息的。
如果有人用例子来解释那就太好了。
如果两者显示如下不同的值,它表示什么?
# echo $0
ksh
# echo $SHELL
/sbin/sh
#
最佳答案
SHELL
只是一个环境变量,而 $0
是当前运行程序的路径。用户应设置 SHELL
到首选shell的值,类似于用户设置PAGER
的方式和 EDITOR
.任何需要生成 shell 的程序都应该检查 SHELL
的值。来确定调用哪个 shell。 SHELL
不是您登录时获得的 shell 的路径。当一个新的 shell 运行超过 PAGER
时它不会改变。如果设置为 less
会改变但用户调用 more
, 或者如果 EDITOR
设置为 vi
并且用户运行 emacs
.例如:
$ echo $0 $SHELL
bash /bin/bash
$ exec csh
% echo $0 $SHELL
csh /bin/bash
关于shell - $0 和 $SHELL 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9804517/