LinuxForum.Fans
Тема

Файл /etc/profile

Автор: ekso 11 сообщений 2585 просмотров
#219962

Всем привет!
Подскажите, как можно часть файла /etc/profile вынести в отдельный фаил...

Только не спрашивайте зачем, долго объяснять...))))

#219966

У каждого пользователя может быть отдельный файл ~/.profile.
Если общесистемно — в некоторой степени зависит от дистрибутива.
В Gentoo, например, этот файл начинается так:

text

# Load environment settings from profile.env, which is created by
# env-update from the files in /etc/env.d
if [ -e /etc/profile.env ] ; then
        . /etc/profile.env
fi
#219973

Ну да... Я так пробовал...

Когда я пишу в /etc/profile строчку:
. /etc/myprofile1.env
то он мне говорит: syntax error

#219975
ekso написал:
о он мне говорит: syntax error

А что у вас в /etc/myprofile1.env?

#219978

у меня там несколько alias
типа: cp = 'cp -i' и т.д.

#219980
ekso написал:
типа: cp = 'cp -i' и т.д.

...проще просто выполнить

text

cat -A /etc/myprofile1.env

...и показать вывод.

#219983

к сожалению не проще))) у меня все это дело на соседней машине))) и доступа к инету нет..
но могу вам обещать что даже если myprofile1.env просто пуст, то ошибка вылетает все равно...

#219985

ekso, тогда всё же вопрос — для чего это нужно? Возможно, есть готовые решения.

#219986

а из обычного шела оно работает?

#219991

все я нашел ошибку... у меня ksh в нем нельзя писать:
if [ -e /etc/profile.env ] ; then

так как он не знает что такое "-e" сорри

#220018
Lupo Alberto написал:
Возможно, есть готовые решения.

конечно есть. Хотите от самого Патрега? Извольте'с:
почти в самом конце /etc/profile видим:

text
# Append any additional sh scripts found in /etc/profile.d/:
for profile_script in /etc/profile.d/*.sh ; do
  if [ -x $profile_script ]; then
    . $profile_script
  fi
done

Всё очень просто: в каталоге /etc/profile.d/ лежат разные нужные и ненужные куски. Нужные имеют право выполнения, ненужные - не имеют. Скрипт проверяет их все, и включает в файл только нужные. Обратите внимание на точку перед $profile_script - она нужна для того, что-бы переменные и алиасы из дочерних кусков попадали в родительский скрипт, а оттуда и для пользователя.

ekso написал:
все я нашел ошибку... у меня ksh

Насколько я знаю, в корношеле есть свои, более эффективные методы.

Войдите или зарегистрируйтесь, чтобы ответить.