Я хотел бы получить свой .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
, которая была бы довольно хорошим решением.