[sisyphus] Q: Multiply /etc/profile.d/ sourcing

Anton V. Denisov =?iso-8859-1?q?fire_=CE=C1_kgpu=2Ekamchatka=2Eru?=
Чт Апр 10 04:22:39 MSD 2003


Приветствую всех.

Поставил тут ради интереса пакет linter с 9 диска Мастер 2.2, в состав
которого входит файл /etc/profile.d/linter.sh следующего содержания:
#!/bin/sh
PATH=$PATH:/opt/linter/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/linter/bin
PERL5LIB=$PERL5LIB:/opt/linter/bin
export PATH LD_LIBRARY_PATH PERL5LIB

Так вот с этим файлом начинается самое интересное: пользователь логинится в
обычную консоль и получаем:

$ echo $LD_LIBRARY_PATH
:/opt/linter/bin

затем через startx запускаем X'ы, там запускаем любой эмулятор терминала и
получаем:

$ echo $LD_LIBRARY_PATH


Хотя
$ echo $PERL5LIB
:/opt/linter/bin:/opt/linter/bin

Так почему обнулилась переменная $LD_LIBRARY_PATH и почему
/etc/profile.d/linter.sh выполнялся дважды? Это всё происходит у
пользователя с bash в качестве оболочки. У пользователя с zsh в качестве
оболочки ещё более интересные результаты - при аналогичной процедуре
запуска X'ов /etc/profile.d/linter.sh выполнился 3 раза (судя по
содержимому переменной $PERL5LIB) а значение $LD_LIBRARY_PATH осталось
:/opt/linter/bin

С уважением, Антон В. Денисов.





Подробная информация о списке рассылки Sisyphus