使用程序调用屏幕时,屏幕环境变量不会传输

时间:2014-09-09 15:28:29

标签: matlab environment-variables gnu-screen

我想使用' screen'调用程序(Matlab)但具有一些特定的环境变量。我在.bashrc中设置了所需的变量

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libharfbuzz.so

现在,当我开始屏幕时,传输变量。初始化屏幕后:

/data/jasper$ echo $LD_PRELOAD
/usr/lib/x86_64-linux-gnu/libharfbuzz.so

然后在启动Matlab时,它完美运行:

>> getenv('LD_PRELOAD')

ans =

/usr/lib/x86_64-linux-gnu/libharfbuzz.so

现在奇怪的一点:当在单个屏幕命令中直接启动Matlab时,它不起作用:

screen matlab -nodisplay
来自Matlab的

>> getenv('LD_PRELOAD')

ans = 

''

出了什么问题,为什么?

1 个答案:

答案 0 :(得分:1)

通过反复试验,我从设置.bashrc中的环境变量切换到.screenrc中的设置(使用setenv)。这很有效。

显然,使用屏幕直接调用程序会绕过bash而.bashrc不会被获取。相比之下,.screenrc确实得到了处理。当你想到它时,这是有道理的。