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


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.


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

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


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 .


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


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

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


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

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.


-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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.