我必须包含相同软件的路径,但安装在两个不同位置的两个不同版本,因为我没有这些文件的编辑权限,并且这些不同位置中有一些其他软件,所以我需要包含这两个目录。
第一个目录$HOME
包含许多软件,而第二个目录/grid/common/
包含较少但都是较新的版本。因此,在定义路径环境变量时,我希望第二个文件夹位于第一个文件夹之前。
在我的脚本中:
setenv LD_LIBRARY_PATH $HOME/lib:/grid/common/lib
是/grid/common/
先于$HOME
还是$HOME
先于/grid/common/
在这种情况下
答案1
后者:$HOME/lib
先于(覆盖)/grid/common/lib
。按照惯例,提供以冒号分隔的目录路径列表的环境变量来自左到右。
POSIX列出了几个“路径”变量,都是从左到右处理的,包括CDPATH
, NLSPATH
, PATH
。奇怪的是它没有提到这个(它比列出的几个变量更常用)。
通常,文档不会说从左到右,而只是说“顺序”,假设读者的文化偏见填写了其余的细节: