2010-11-23 3 views
2

Я пишу скрипт, который собирается выполнить новый сеанс bash. Основываясь на некоторой логике, он находит сценарий инициализации, который будет использоваться для новой оболочки. Мне интересно, есть ли хороший способ сообщить новому сеансу bash использовать найденный скрипт инициализации для инициализации в дополнение к сценариям инициализации системы. Опция -init-file, похоже, требует замены файла, а не дополнительного.Несколько файлов инициализации для нового сеанса Bash

В настоящее время у меня запутанная настройка с переменной среды, содержащей путь к найденному скрипту init, который получает исходный файл оболочки вместе с системными файлами. Есть что-то вроде
exec bash --init-file "/etc/profile;~/.bashrc;${myInit}" возможно?

Спасибо, Andrew

+0

Я не считаю, что я достаточно «точки», чтобы прокомментировать ответ withoutasound, так что я буду делать это здесь. Я думаю, что ваше предложение похоже на файл «wrapper init», с которым я сейчас работаю. Мне бы хотелось, чтобы я смог найти все файлы, которые, как я знаю, мне понадобятся в начале. – ajwood 2010-11-23 02:36:00

ответ

3

Это означает хороший шанс работы:

exec bash --init-file <(cat /etc/profile ~/.bashrc "${myInit}") 
0

Я не в состоянии проверить это на моей машине, но, возможно, вы могли бы передать пользовательские .bashrc или .bash_profile к вашему субоболочке, снабжаем файл «INIT» с чем-то вроде

if [ -f path_to_init ]; then 
    . path_to_init_file 
fi 
Смежные вопросы