我想知道$ 0和$ SHELL之间的确切区别.我知道这两个用于了解shell信息.如果有人用例子解释,那将是很好的.
如果两者都显示如下不同的值,它表示什么?
# echo $0
ksh
# echo $SHELL
/sbin/sh
#
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)