$PATH和 $LD_LIBRARY_PATH,它们通常看起来像这样:
PATH=/usr/bin; /bin
LD_LIBRARY_PATH=/usr/lib; /lib
这意味着只要shell执行应用程序(二进制文件或脚本)时,它就会首先查找/usr/bin,然后查找/bin。
当你使用源代码构建并安装程序时,通常需要为新的可执行文件和库文件添加特定的路径。 假设我们要将myapp安装到/opt/myapp,它的二进制文件在/opt/myapp/bin目录中,库文件在/opt/ myapp /lib目录中。
export PATH=/opt/myapp/bin:$PATHexport LD_LIBRARY_PATH=/opt/myapp/lib:$LD_LIBRARY_PATHPATH=/opt/myapp/bin:/usr/bin:/binLD_LIBRARY_PATH=/opt/myapp/lib:/usr/lib:/lib
可以使用函数来简化上诉操作
prepend() { [ -d "$2" ] && eval $1=\"$2\$\{$1:+':'\$$1\}\" && export $1 ; }
# 用法
prepend PATH /opt/myapp/bin
prepend LD_LIBRARY_PATH /opt/myapp/lib
函数prepend()首先确认该函数第二个参数所指定的目录是否存在。如果存在,eval表达 式将第一个参数所指定的变量值设置成第二个参数的值加上:(路径分隔符),随后再跟上第一个 参数的原始值。
如果变量为空,则会在末尾留下一个:
${$1:+’:’\$$1} 一种shell参数扩展的形式: ${parameter:+expression} 如果parameter有值且不为空,则使用expression的值。
