[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