我有以下文件
build.sh
source exportpath.sh
exportpath.sh
export LD_LIBRARY_PATH=/usr/local/lib/
但是,当我执行此build.sh然后运行echo $LD_LIBRARY_PATH
命令时,我无法获得LD_LIBRARY_PATH
值。如何将此值设置为current shell
。
我发现我们必须在当前shell中source
。但我希望它由shell脚本完成。
当我在当前shell中使用source exportpath.sh
时,我的LD_LIBRARY_PATH
正在运行,但我希望这应该由shell脚本完成。
我该怎么做?
答案 0 :(得分:3)
将子shell中设置的环境变量传播到父shell没有神奇的方法。见this reply
您可以实施某些约定,例如让exportpath.sh
使用文件名,build.sh
稍后source
(或使用eval
)。
您可能希望拥有自己的shell function
来包装它们。
但是你应该通常不要做那些奇怪的技巧。例如,您可以将一些程序包装到shell脚本设置LD_LIBRARY_PATH
( mozilla 或firefox
经常做这些事情。)
答案 1 :(得分:-5)
echo $LD_LIBRARY_PATH
注意使用“$”来引用变量值。