macOS Catalina 10.15 (beta) - dlaczego ~ / .bash_profile nie pochodzi z mojej powłoki?

120

Chcę ustawić zmienną środowiskową ja dodany poniżej linii do ~/.bash_profilea ~/.profile, ale to nie działa.

export JBOSS_HOME=/Users/{USERNAME}/Desktop/jboss7

Następnie wyjdź z terminala i otwórz go ponownie, podczas wykonywania echo $JBOSS_HOMEnic nie dostaję.
wprowadź opis obrazu tutaj

Reza Dehnavi
źródło
Domyślam się, że plik .bash_profile nie został pozyskany. Czy na pewno Twój terminal tworzy powłokę logowania bash ? Jeśli nie, .bash_profile zostanie zignorowany.
user1934428
1
@ user1934428 Tak, zgadza się. Nie wiem, dlaczego zmieniono domyślny bash? !!
Reza Dehnavi
Nie rozumiem. Jakie „domyślne” zostało zmienione? Nie powiedziałeś, jakiego programu Terminal używasz, ale zwykle możesz skonfigurować aplikację Terminal, jak uruchomić powłokę.
user1934428
@ user1934428 Nie wiedziałem, że są różne powłoki.
Reza Dehnavi
1
Apple zastępuje bash zsh jako domyślną powłokę w macOS Catalina stackoverflow.com/a/59151321/5788247
Shomu,

Odpowiedzi:

304

Firma Apple zmieniła domyślną powłokę na zsh. Dlatego musisz zmienić nazwy plików konfiguracyjnych. .bashrcjest teraz .zshrci .bash_profilejest teraz .zprofile.

alexschu98
źródło
4
Apple zmienił się z bash na zshell z powodu problemów licencyjnych. thenextweb.com/dd/2019/06/04/…
Manuel Hernandez
119
To takie niesamowite doświadczenie użytkownika, jak moja konfiguracja deweloperska psuje się przy każdej aktualizacji OS-X
Chris Hatton,
2
@ChrisHatton Po prostu czekam na następną aktualizację, abym mógł złamać moją obecną konfigurację i zacząć wszystko od nowa, niecierpliwie czekając na następne wydanie!
Utsav Gupta
51

Jeśli z jakiegoś powodu (tak jak ja) nie chcesz zmieniać nazwy / przenosić ~/.bash_profilepliku, możesz wykonać następujące czynności:

  1. Utwórz nowy plik ~/.zprofile
  2. Wpisz tam source ~/.bash_profile
  3. Zapisz i zamknij
  4. Uruchom nową sesję terminala
Rostyslav Druzhchenko
źródło
5

Utworzyłem nowy plik o nazwie

/usr/local/bin/mybash

który zawiera skrypt opakowujący:

/usr/local/bin/bash --init-file $HOME/.bashrc

Zainstalowałem ten lokalny / bin / bash z HomeBrew .

Pełna sekwencja wydarzeń

brew install bash
echo "/usr/local/bin/bash --init-file $HOME/.bashrc" > /usr/local/bin/mybash
chmod +x /usr/local/bin/mybash

Następnie otworzyłem ustawienia dla terminal.app[cmd-comma]. Na Generalkarcie wybierz przycisk opcji dlaCommand (complete path)

W polu tekstowym zmień tekst z /bin/zsh/na /usr/local/bin/bash.

Przykład ostatecznego formatu

ExoWanderer
źródło
2
To dobra opcja, ponieważ powyższe odpowiedzi nie biorą pod uwagę, że niektóre składnie są różne w zsh i bash.
Prashant Sharma
3

Po zamknięciu okna terminala zmienne ustawione w tym oknie nie są już dostępne. Jeśli chcesz, aby wartość zmiennej była zachowana w sesjach i we wszystkich oknach terminala, musisz ustawić ją w skrypcie startowym powłoki. Informacje na temat modyfikowania skryptu startowego powłoki zsh w celu zachowania zmiennych i innych ustawień w wielu sesjach można znaleźć w sekcji „Wywołanie” strony podręcznika zsh .

Możesz użyć, ~/.zloginaby dodać swoje zmienne.

Sprawdź to odniesienie .

abhay anand
źródło
1

Możesz po prostu skopiować istniejący bash_profile i nazwać go zprofile i będzie działać dobrze.

  • Uruchom poniższe polecenie w terminalu i jesteś ustawiony po zamknięciu i otwarciu nowego terminala.

cp ~/.bash_profile ~/.zprofile

Amin Agha
źródło
0

zmiana profilu bash na profil zsh działa i można go również pobrać, aby zobaczyć w akcji.

vikas@Vikas-Kumar ~ % mv .bash_profile .zsh_profile
vikas@Vikas-Kumar ~ % source .zsh_profile
vikas kumar
źródło
0

Możesz utworzyć łącze simbolic i zachować plik .bash_profile za pomocą tego:

ln -s .bash_profile .zsh_profile
source .zsh_profile

Wszelkie zmiany w .bash_profile zostaną odzwierciedlone w .zsh_profile

Gilberto
źródło
Otrzymuję ln: .zsh_profile: Operacja niedozwolona
Salman Ullah Khan
0

nie musisz aktualizować pliku, zsh jest domyślnym ustawieniem Maca, umieść to w terminalu. na przykład:

export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
gpbaculio
źródło
0

Nawet z systemem Catalina / bin / bash jest za darmo, napar nie jest potrzebny. Po prostu utwórz swój .bash_profile i ustaw powłokę w ustawieniach terminala na / bin / bash . automatycznie znajduje twój .bash_profile. z-shell nie jest bash-shell i po prostu zmiana nazwy będzie działać w większości przypadków, ale zdecydowanie nie jest poprawna.

Peter Ętgugel
źródło
-3
cp zprofile ~/.zprofile

Dodaj do .zprofile:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

na przykład. przez>vi .zprofile

Gotowe

Maggie
źródło