我想知道$ 0和$ SHELL之间的确切区别。我知道这两个用于了解shell信息。 如果有人用例子解释,那将是很好的。
如果两者都显示如下不同的值,它表示什么?
# echo $0
ksh
# echo $SHELL
/sbin/sh
#
答案 0 :(得分:5)
$ SHELL提供默认 shell的完整路径。
$ 0提供当前 shell的名称。
答案 1 :(得分:3)
SHELL只是一个环境变量,而$ 0是当前正在运行的程序的路径。 SHELL设置为您希望用作默认值的shell的值,类似于PAGER和EDITOR。任何需要生成shell供您使用的程序都应该检查SHELL的值以确定要调用的shell。 SHELL 不您登录时获得的shell路径。如果你调用一个新的shell,它将不会改变,如果它被设置为less
而你选择调用more
,PAGER将会改变。例如:
$ echo $0 $SHELL
bash /bin/bash
$ exec csh
% echo $0 $SHELL
csh /bin/bash