2014-09-09 2 views
0

Я хочу использовать «экран» для вызова программы (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 = 

'' 

Что пошло не так и почему?

ответ

0

В результате проб и ошибок я переключился с установки переменной окружения в .bashrc, установив ее в .screenrc (используя setenv). Это сработало.

Очевидно, что вызовы программ непосредственно с использованием обходных байтов экрана bash и .bashrc не получают источников. Напротив, .screenrc обрабатывается. Это имеет смысл, когда вы об этом думаете.

Смежные вопросы