在导出环境变量中使用“:”有什么作用?

在导出环境变量中使用“:”有什么作用?

我只是想关注邮政。

我将“/some/directory/”替换为“/usr/lib/x86_64_linux-gnu/”,结果

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64_linux-gnu/

现在当我输入

printenv LD_LIBRARY_PATH

它打印

:/usr/lib/x86_64-linux-gnu/

我想知道:是否正确,如果不正确,我该做些什么不同的事情。

我很困惑为什么作者使用

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/some/directory/

“$” 和 “:” 起什么作用?

答案1

LD_LIBRARY_PATH 是路径的集合,每个路径都以一个目录结尾(因此您不会在其中包含特定的库,如 libcudnn_cnn_infer.so.8),在该目录中搜索库,就像列出查找可执行程序的位置的正常 PATH 一样。

如果有多个路径,则冒号 (:) 是路径之间的分隔符。

export xy_PATH=$xy_PATH:/abc 

模式是一种常见模式,例如,当系统范围设置在 /etc 中的系统范围配置文件中声明,但后来由用户特定配置文件在其 /$HOME/.xyconf 中扩展时。用户采用已定义的内容并对其进行扩展。

冒号是 shell 的自动分隔符,因为它不能成为变量名的一部分。这使得它很容易扩展。否则,你必须写成export xy_PATH=${xy_PATH}:/abc。还要注意,冒号前面的空白部分是无害的,这使得组合更健壮。

相关内容