Всем привет!
Подскажите, как можно часть файла /etc/profile вынести в отдельный фаил...
Только не спрашивайте зачем, долго объяснять...))))
Файл /etc/profile
У каждого пользователя может быть отдельный файл ~/.profile.
Если общесистемно — в некоторой степени зависит от дистрибутива.
В Gentoo, например, этот файл начинается так:
# 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
Ну да... Я так пробовал...
Когда я пишу в /etc/profile строчку:
. /etc/myprofile1.env
то он мне говорит: syntax error
о он мне говорит: syntax error
А что у вас в /etc/myprofile1.env?
у меня там несколько alias
типа: cp = 'cp -i' и т.д.
типа: cp = 'cp -i' и т.д.
...проще просто выполнить
cat -A /etc/myprofile1.env
...и показать вывод.
к сожалению не проще))) у меня все это дело на соседней машине))) и доступа к инету нет..
но могу вам обещать что даже если myprofile1.env просто пуст, то ошибка вылетает все равно...
ekso, тогда всё же вопрос — для чего это нужно? Возможно, есть готовые решения.
а из обычного шела оно работает?
все я нашел ошибку... у меня ksh в нем нельзя писать:
if [ -e /etc/profile.env ] ; then
так как он не знает что такое "-e" сорри
Возможно, есть готовые решения.
конечно есть. Хотите от самого Патрега? Извольте'с:
почти в самом конце /etc/profile видим:
# 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 - она нужна для того, что-бы переменные и алиасы из дочерних кусков попадали в родительский скрипт, а оттуда и для пользователя.
все я нашел ошибку... у меня ksh
Насколько я знаю, в корношеле есть свои, более эффективные методы.