为什么我无法成功导出 bash 脚本中的路径?

为什么我无法成功导出 bash 脚本中的路径?

为了让一些 C 代码正确编译,我需要导出一个文件夹,以便找到某些文件。

在命令行上,如果我首先运行

export LD_LIBRARY_PATH=/bin/path../version/:$LD_LIBRARY_PATH

然后 C 代码的可执行文件就可以工作了。如果我不导出LD_LIBRARY_PATH,那么可执行文件将失败,因为C包找不到必要的文件,即

exectuable: error while loading shared libraries: file1.so: cannot open shared object file: No such file or directory

我现在想通过 bash 脚本运行此代码。这是我的 bash 脚本run_stuff.sh

#!/bin/bash

source ~/.bash_profile

export LD_LIBRARY_PATH=/bin/path../version/:$LD_LIBRARY_PATH

path/to/executable/executable 

此操作失败,并出现上述错误。从那以后我尝试过

echo "export LD_LIBRARY_PATH=/bin/path../version/:$LD_LIBRARY_PATH"

在 bash 脚本中,我添加了

export LD_LIBRARY_PATH=/bin/path../version/:$LD_LIBRARY_PATH

之内~/.bash_profile。它仍然不起作用——C 代码找不到这个文件。

如何在 bash 脚本中正确导出文件夹?

答案1

1

可以在本地导出。

#!/bin/bash

LD_LIBRARY_PATH=/bin/path../version/:$LD_LIBRARY_PATH path/to/executable/executable 

使用VAR=value cmd将为cmd流程设置并导出 VAR。

2

分两步导出

#!/bin/bash

LD_LIBRARY_PATH=/bin/path../version/:$LD_LIBRARY_PATH 
export LD_LIBRARY_PATH

path/to/executable/executable 

这就是我在脚本中所做的方式。 (请注意,这与手册页所说的相矛盾)

导出 [-fn] [名称[=单词]] ...

如果变量名称后跟=word,则变量的值将设置为word。

相关内容