[sisyphus] bash: export JAVA_HOME

Yuriy Kashirin =?iso-8859-1?q?yura_=CE=C1_emict=2Ecom?=
Пн Июл 10 16:06:27 MSD 2006


On Monday 10 July 2006 14:14, Eugene Prokopiev wrote:
> Теперь главный вопрос: как сделать, чтоб после логина пользователя
> он видел бы в переменной JAVA_HOME /usr/lib/j2se1.5-sun.

[ skiped ]

>      if [ -f "$f" -a -r "$f" -a -x "$f" -a -s "$f" -a ! -L "$f" ];

[ skiped ]

> Т.е. выпадают ссылки, ведущие наружу. Вопрос: что делает if в
> profile, делает ли он это правильно (что тогда неправильно?) или
> нет

Это из-за условия -a ! -L "$f", что означает "и если $f не ссылка". То 
есть выпадают все ссылки (не только ведущие наружу). Судя по:
> $ ls -la /etc/profile.d
> -rwxr-xr-x  1 root root 1569 May 18 13:03 0lang.csh
> -rwxr-xr-x  1 root root 1792 May 18 13:03 0lang.sh
> lrwxrwxrwx  1 root root    9 May 18 13:03 lang.csh -> 0lang.csh
> lrwxrwxrwx  1 root root    8 May 18 13:03 lang.sh -> 0lang.sh

...игнорирование ссылок сделано, чтоб повторно не обрабатывать файл, 
на который там же есть ссылка. Зачем в /etc/profile.d лежат и файлы, 
и ссылки на них - хз.

>  (как тогда исправить?)
Проще всего переделать условие на:
    if [ -f "$f" -a -r "$f" -a -x "$f" -a -s "$f" ]

Но не забыть поудалять ссылки, указывающие на файлы, лежащие в том же 
директории. Или убрать из таких ссылок или из самих файлов 
расширение .sh


-- 
 Best regards
 Yuriy Kashirin


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