LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. ./myAppUsingAlibraryInThisDirectory
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. ~/dir/anotherAppUsingLibraryFromHere
有没有一种快捷方式,这样我就不需要为每个命令重新添加相同的前缀?
Windows 不需要这样的东西,但我更喜欢使用 Ubuntu。
答案1
当你做类似的事情时
SOME_VARIABLE=some_value some_command
您运行some_command
,但将环境变量SOME_VARIABLE
设置some_value
为仅针对此单个命令。
当您在单独的行上写入赋值,而没有任何后续命令时,变量将在整个 shell 会话中设置为此值,即通常直到您关闭终端。您很可能必须对该export
变量进行设置,以便它不仅在 shell 中可用,而且在其所有子 shell 和子进程中也可用,即您将运行的命令:
export SOME_VARIABLE=some_value
some_command
another_command and so on
这样,变量会持续整个 shell 会话,但不会跨会话保留。打开新终端后,变量就会消失。要保留所有 shell 会话的变量,必须在 shell 启动脚本中设置它们,通常是~/.profile
。只需将导出变量的行附加到此文件的末尾,此后打开的所有 shell 都会设置该变量。
不过,对于您的具体情况,还有一点需要注意LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
:您应该避免.
在任何与路径相关的环境变量中指定相对路径(此处引用您当前的工作目录)。这些相对路径将始终被解析每当您运行使用该目录的命令时,它相对于您的当前工作目录,而不是相对于您定义变量时的工作目录。这可能会产生意想不到的、令人困惑的副作用,甚至会造成安全威胁。请始终使用绝对路径。