Я хотел бы получить свой .bash_profile (или, возможно, какой-нибудь другой файл) всякий раз, когда я переключаюсь на суперпользователя. (.bash_profile - это rc для входа в систему в Mac OS X, .bashrc - это сценарий без входа в систему, а .profile - это rc для входа в систему, который запускается для любой оболочки).
Проще говоря , мой .bash_profile делает использование терминала более удобным для меня, и в те редкие моменты, когда мне приходится играть супер, я чувствую, что пытаюсь играть на гитаре без больших пальцев. Более того, $PS1 и $PROMPT_COMMAND экспортируются суперпользователю, но функции, определенные в моем .bash_profile и используемые в моем $PROMPT_COMMAND , не экспортируются в эту лексическую среду.
В частности, я использую сценарий git-prompt.sh в своем .bash_profile и использую экспортированную команду __git_ps1 в моем $PROMPT_COMMAND . Таким образом, каждой отдельной строке приглашения в оболочке суперпользователя предшествует предупреждение:
bash: __git_ps1: command not found.
Теперь я технически мог изменить общесистемный rc в /etc/profile для достижения эффекта. Я мог бы взглянуть на $HOME , и если это мой дом, то найдите $HOME/.bash_profile . Тем не менее, это не портативно. Я должен был бы изменить /etc/profile на каждом хосте, на котором я, вероятно, буду работать. Я хочу экспортировать это поведение на все хосты, на которых я работаю.
Кто-нибудь может придумать решение, которое полностью содержится в моем профиле bash?
Никаких предупреждений о том, чтобы стать суперпользователем, не требуется. Я знаю, что есть sudo , и что это плохо, плохо, плохо, и я морально и интеллектуально уступаю в этом. :)
В su Mac OS X нет опции -c , которая была бы довольно хорошим решением.
