6

Это связано с тем, почему мой LD_LIBRARY_PATH получает неустановленный запускающий терминал?, но другой набор симптомов.

Во-первых, /usr/bin/screen установлен в соответствии с другим вопросом. Во-вторых, оболочкой по умолчанию в этой системе является /bin/tcsh по различным историческим причинам, и нам не разрешено переходить из chsh в /bin/bash , поэтому я обычно запускаю bash сразу после входа в систему. В-третьих, я почти всегда использую screen, но я хочу, чтобы ctrl-a ctrl-c на экране создавала новую "вкладку" bash, поэтому я всегда сначала вызываю bash.

То есть:

{~} $ echo $SHELL
/bin/tcsh
{~} $ bash
[~] echo $SHELL
/bin/bash
[~] screen -U
[~]

... и при переподключении:

{~} $ echo $SHELL
/bin/tcsh
{~} $ screen -dUr
[~] echo $SHELL
/bin/bash
[~] 

Тем не менее, мой $LD_LIBRARY_PATH есть в tcsh, там в bash, но пуст, когда я запускаю screen; это все еще присутствует, если я просто запускаю screen из tcsh, но тогда я получаю новые tcsh "вкладки", когда я использую ctrl-a ctrl-c на экране.

Есть идеи?

2 ответа2

7

Поскольку экран настроен, он сбрасывает LD_LIBRARY_PATH . Когда ваша оболочка - tcsh, инициализация tcsh (я полагаю, из .tcshrc , так как screen не создает оболочки входа в систему по умолчанию) снова устанавливает LD_LIBRARY_PATH . Если вы хотите, чтобы LD_LIBRARY_PATH был установлен в окнах вашего bash-экрана, установите его из .bashrc .

0

Большинство людей устанавливают свои $ PATH и $ LD_LIBRARY_PATH в .bash_profile или .bashrc, думая, что они оба одинаковы, но это не так. Один для "настоящих оболочек", а другой для "удаленных оболочек" - мое понимание этого (я никогда не могу вспомнить, какой есть какой). В основном, в зависимости от того, как вы входите в систему (ssh, настольный терминал, экран, w/e), выполняется один или другой. Если ваши переменные установлены в одной, но не в другой, подумайте о том, чтобы сделать одну символическую ссылку на другую или сделать ее одной строкой:

echo "source .bashrc" > .bash_profile

* при условии, что вы используете .bashrc сейчас; иначе:

echo "source .bash_profile" > .bashrc

так что ваши переменные устанавливаются независимо от того, как вы входите в систему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .