1.3 function to prepend to environment variables

本节的目的:

  • How to use a list of paths

  • Search for executables, libraries, and so on

常见的两个环境变量如下:

$ echo $PATH
/usr/bin:/bin
$ echo $LD_LIBRARY_PATH
/usr/lib:/lib

/opt/myapp/bin添加到环境变量中:

$ export PATH=/opt/myapp/bin:$PATH
$ export LD_LIBRARY_PATH=/opt/myapp/lib;$LD_LIBRARY_PATH
bash: /opt/myapp/lib: No such file or directory

现在PATH和LD_LIBRARY_PATH变为:

$ echo $PATH
/opt/myapp/bin:/usr/bin:/bin
$ echo $LD_LIBRARY_PATH
/opt/myapp/lib

使用自定义的函数完成这一任务:

$ prepend() { [ -d "$2" ] && eval $1="$2':'$$1" && export $1; }
$ prepend PATH /opt/myapp/bin
$ prepend LD_LIBRARY_PATH /opt/myapp/lib

prepend()的修改版,修正了环境变量为空时产生的bug:

$ prepend() { [ -d "$2" ] && eval $1="$2${$1:+':'$$1}" && export $1 ; }