在我的办公室电脑上,我似乎有两个PATH
变量。
$path :这是由“”(空格)分隔的
$PATH :这是由“:”(冒号)分隔的
虽然当我更新一个时,另一个也会更新。这是 Linux 中的正常行为还是我的机器中发生了什么奇怪的事情?
我应该保留它们还是删除其中之一?
编辑:我正在使用csh
,我发现这是因为我的一些同事正在更新“路径”变量,而其他人则使用PATH
. 虽然我删除PATH
了 my 中所有出现的更新,.cshrc
但当我尝试回应它们时它仍然出现。
真正的PATH
变量是大写的,除了 (t)csh 本身,它有点复杂。
PATH
是一个环境变量,所有应用程序(不仅仅是外壳程序)查找它以按名称调用程序。的值PATH
是一个字符串,列出以冒号分隔的目录名称。
为方便起见,csh 还提供了一个名为path
. 这个变量的值是一个字符串列表,每个字符串都是一个目录名。无论何时path
,CSH自动设置PATH
到的元素的串联path
与:
元素之间。
如果您设置PATH
为set
,path
则不受影响。再者,csh 设置PATH
环境变量以匹配其path
内部变量,因此set PATH=...
没有实际作用。
如果您设置PATH
为setenv
,path
则相应更新。但是setenv PATH …
不影响$PATH
扩展到什么,这使得使用起来很尴尬。
结果是,在 csh 中,您应该坚持使用path
. 但其他地方PATH
是你唯一能看到的。