Chciałbym uzyskać źródło .bash_profile
(lub może jakiś inny plik) za każdym razem, gdy przełączam się na administratora. ( .bash_profile
jest to login rc w Mac OS X, .bashrc
to skrypt bez logowania i .profile
jest to rc logowania działający dla dowolnej powłoki).
Po prostu .bash_profile
sprawia , że korzystanie z terminala jest dla mnie wygodniejsze, a czasami, kiedy muszę iść super, mam wrażenie, że próbuję grać na gitarze bez kciuków. Co więcej, $PS1
i $PROMPT_COMMAND
zostaną wyeksportowane do superużytkownika, ale funkcje zdefiniowane w moim .bash_profile
i użyte w moim $PROMPT_COMMAND
nie zostaną wyeksportowane do tego środowiska leksykalnego.
W szczególności źródłowy git-prompt.sh
skrypt w moim źródle .bash_profile
i używam w nim wyeksportowanego __git_ps1
polecenia $PROMPT_COMMAND
. Dlatego każdy wiersz zachęty w powłoce administratora jest poprzedzony ostrzeżeniem:
bash: __git_ps1: command not found.
Teraz technicznie mogę zmodyfikować systemowy rc /etc/profile
w celu uzyskania efektu. Mógłbym spojrzeć $HOME
, a jeśli to mój dom, to źródło $HOME/.bash_profile
. Nie jest to jednak przenośne. Musiałbym zmodyfikować /etc/profile
na każdym hoście, na którym prawdopodobnie będę pracować. Chcę wyeksportować to zachowanie na wszystkich hostach, na których pracuję.
Czy ktoś może pomyśleć o rozwiązaniu, które jest całkowicie zawarte w moim własnym profilu bash?
Nie są wymagane żadne ostrzeżenia o zostaniu superużytkownikiem. Wiem, że tam jest sudo
i że jest źle, źle, źle i jestem moralnie i intelektualnie gorszy za robienie tego. :)
Mac OS X su
nie ma -c
opcji, która byłaby całkiem dobrym rozwiązaniem.