$ 0和$ SHELL之间的差异

时间:2012-03-21 12:21:52

标签: shell

我想知道$ 0和$ SHELL之间的确切区别。我知道这两个用于了解shell信息。 如果有人用例子解释,那将是很好的。

如果两者都显示如下不同的值,它表示什么?

# echo $0
ksh
# echo $SHELL
/sbin/sh
#

2 个答案:

答案 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