Odpowiedzi:
Bash będzie pobierał EITHER .bash_profile lub .bashrc, w zależności od tego, jak zostanie wywołany. Jeśli jest to powłoka logowania, Bash szuka ~ / .bash_profile, ~ / .bash_login, lub ~ / .profile, w tej kolejności, i źródeł pierwszego znalezionego (i tylko tego). Jeśli nie jest to powłoka logowania, ale jest interaktywna (jak większość sesji terminalowych), Bash pobierze ~ / .bashrc.
Prawdopodobnie iTerm szuka ~ / .bashrc. Jeśli jest skonfigurowany do uruchamiania jako powłoka logowania, będzie szukał ~ / .bash_profile. To prawie na pewno błąd w pliku konfiguracyjnym, a nie to, że powłoka go nie pozyskuje.
Umieściłbym linię na początku każdego pliku. Na górze ~ / .bash_profile:
export BASH_CONF="bash_profile"
A na górze ~ / .bashrc:
export BASH_CONF="bashrc"
Następnie otwórz nowy iTerm i wpisz
$ echo $BASH_CONF
To powinno potwierdzić, że plik jest pozyskiwany i możesz zajrzeć do składni pliku.
W iTerm2 żadne z tych rozwiązań nie działało dla mnie. Udało mi się go poprawnie odczytać w pliku .bashrc, dodając polecenie
source ~/.bashrc
do pola Wyślij tekst przy starcie: Ustawienia / Ogólne dla mojego profilu iTerm.
~/.bashrc
. Edytowałem to.
Zastanawiam się, czy naprawdę używasz Bash? Może możesz użyć echo $SHELL
, jest całkiem możliwe, że używasz zsh , czy zainstalowałeś na-my-zh ?
Zazwyczaj napotykam ten sam problem, co ja, naprawiam go, konfigurując ~ / .zshrc zamiast tego ~ / .bash_profile dla powłoki logowania lub ~ / .bashrc dla powłoki bez logowania.
Może spróbujesz
Na moim komputerze 10.6 ~/.profile
jest pozyskiwany. Więc source .bashrc
wpis ~/.profile
powinien wykonać zadanie.
Łatwa naprawa.
1. Otwórz ~/.zshrc
plik
2. Dodaj następujący wiersz na końcu pliku.
source ~/.bash_profile
Umieść definicje swojego aliasu w pliku profilu bash, musisz utworzyć plik, ale zostanie on automatycznie wygenerowany. Tworzę osobny plik o nazwie alias.configuration i źródło go w .bash_profile tylko dlatego, że mam zdefiniowanego innego użytkownika i chcę mieć ten sam zestaw aliasów.
.bashrc
nie .bash_profile
są one pozyskiwane.
Na 10.10 i iTerm2 2.0, niestandardowy profil
Dodaj
set -x
do początku /etc/profile
. To daje konto wiersz po wierszu wszystko, co zostanie wykonane, gdy bash
rozpoczyna się, w tym plików pochodzących od wewnątrz /etc/profile
, ~/.bash_profile
itp Jest to trochę trudne, jeśli nie rozumieją bash
włączony bardzo dobrze, ale może być w stanie sprawdzić, czy Wystąpił błąd w pliku startowym, a dane wyjściowe będą przydatne dla kogoś, kto biegle bash
pomoże Ci zlokalizować problem.
Możesz usunąć set -x
linię, gdy skończysz rozwiązywać problemy.
Połączyłem razem kilka rozwiązań, aby działać zgodnie z oczekiwaniami.
.bash_profile
źródło i uruchom na zsh.
Preferences -> Profiles -> General
.
Wybierz polecenie Polecenie.
I dodaj w polu tekstowym /bin/bash --login
.
Następnie w linii dodawania .bash_profile
/bin/zsh --login
to jest to!
bash
zawsze uciekasz zsh
, to nie jest to, czego wszyscy oczekują.
source ~/.bash_profile
ręcznie. @Scott Po wykonaniu powyższych czynności, mam zsh w wymagany sposób.
zsh
może to być to, czego pragniesz , ale nie jest to wymagane ani zadawane przez to pytanie, które jest oznaczone [bash] i nic o nim nie mówi zsh
. (2) Jeśli zdefiniujesz aliasy i funkcje powłoki i ustawisz zmienne (bez ich eksportowania) w swoim .bashrc
i / lub .bash_profile
, czy są one dostępne dla ciebie w zsh
powłoce?
~/.bash_profile
wywoływane najpierw przez bash, co oznacza zwarcie w instrukcjach, które masz~/.bashrc
. Ten problem może się zdarzyć nieoczekiwanie, jeśli nieuczciwy program doda kilka instrukcji do twojego,~/.bash_profile
gdy wcześniej plik nie istniał, i umieściłeś wszystkie swoje polecenia bash w~/.bashrc
. Rozwiązaniem jest usunięcie twojego ~ / .bash_profile lub posiadanie źródła ~ / .bash_profile twojego ~ / .bashrc. Można to zrobić, dodając polecenie:source ~/.bashrc
do końca~/.bash_profile
i restartując terminal.