如何从子shell脚本导出库路径并使用父shell中的路径?

时间:2012-12-10 05:56:33

标签: linux shell export

我有以下文件

  1. build.sh

    source exportpath.sh
    
  2. exportpath.sh

    export LD_LIBRARY_PATH=/usr/local/lib/
    
  3. 但是,当我执行此build.sh然后运行echo $LD_LIBRARY_PATH命令时,我无法获得LD_LIBRARY_PATH值。如何将此值设置为current shell

    我发现我们必须在当前shell中source。但我希望它由shell脚本完成。

    当我在当前shell中使用source exportpath.sh时,我的LD_LIBRARY_PATH正在运行,但我希望这应该由shell脚本完成。

    我该怎么做?

2 个答案:

答案 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

注意使用“$”来引用变量值。