哪个是真正的 PATH 变量

Kar*_*and 5 path csh

在我的办公室电脑上,我似乎有两个PATH变量。

$path :这是由“”(空格)分隔的

$PATH :这是由“:”(冒号)分隔的

虽然当我更新一个时,另一个也会更新。这是 Linux 中的正常行为还是我的机器中发生了什么奇怪的事情?

我应该保留它们还是删除其中之一?

编辑:我正在使用csh,我发现这是因为我的一些同事正在更新“路径”变量,而其他人则使用PATH. 虽然我删除PATH了 my 中所有出现的更新,.cshrc但当我尝试回应它们时它仍然出现。

Gil*_*il' 9

真正的PATH变量是大写的,除了 (t)csh 本身,它有点复杂。

PATH是一个环境变量,所有应用程序(不仅仅是外壳程序)查找它以按名称调用程序。的值PATH是一个字符串,列出以冒号分隔的目录名称。

为方便起见,csh 还提供了一个名为path. 这个变量的值是一个字符串列表,每个字符串都是一个目录名。无论何时path,CSH自动设置PATH到的元素的串联path:元素之间。

如果您设置PATHsetpath则不受影响。再者,csh 设置PATH环境变量以匹配其path内部变量,因此set PATH=...没有实际作用。

如果您设置PATHsetenvpath则相应更新。但是setenv PATH …不影响$PATH扩展到什么,这使得使用起来很尴尬。

结果是,在 csh 中,您应该坚持使用path. 但其他地方PATH是你唯一能看到的。