shell 问题 source project_env.sh
project_env.sh里面是设置的各个库路径LD_LIBRARY_PATH,比如如下:
export LD_LIBRARY_PATH=$PWD/../3rdparty/opencv:$PWD/../3rdparty/libboost:$PWD/../3rdparty/glog:$PWD/../3rdparty/gflags:$PWD/../3rdparty/caffe:$PWD/../3rdparty/libtorch:$PWD/../3rdparty/cuda:$PWD/../3rdparty/lib:$PWD/../3rdparty/protobuf
然后我就执行sh project_env.sh
后面我再当前终端下查看设置成功了没有,也是打印出来看:
echo $LD_LIBRARY_PATH
很遗憾,还是之前的,设置的好像没有起效果,我顿刻明白了,他这个执行sh脚本是在子shell里面执行的,也就是说内部新开了一个shell,设置的LD_LIBRARY_PATH变量并不能反应到当前shell。
不要问我为什么知道的,多看书,☺_. --->这本书里面有讲 <<Linux命令行与shell脚本编程大全.第3版>>
然后要子shell设置的变量反应到当前终端shell,需要用source执行。
source project_env.sh
好记性不如烂键盘---点滴、积累、进步!