Korzystam z El Capitan 10.11.3 z wersją bash 3.x, więc postanowiłem zaktualizować bash poprzez:
brew install bash
Brew umieszcza nową wersję bash pod / usr / local / Cellar / bash:
brew info bash
bash: stable 4.3.42 (bottled), devel 4.4-beta, HEAD
Bourne-Again SHell, a UNIX command interpreter
https://www.gnu.org/software/bash/
/usr/local/Cellar/bash/4.3.42 (59 files, 7.3M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/bash.rb
==> Dependencies
Required: readline ✔
==> Caveats
In order to use this build of bash as your login shell,
it must be added to /etc/shells.
Jak widzisz napar wspomina, że muszę zaktualizować, /etc/shells
aby móc korzystać z nowej wersji bash. Ale po zamknięciu / ponownym otwarciu bieżąca powłoka bash --version
mówi mi, że już używam 4.3.42, więc zastanawiam się, co stało się pod maską, że nowa wersja jest automatycznie używana?
Odpowiedzi:
Możesz użyć polecenia chsh, aby zmienić powłokę. W twoim przypadku, w przypadku generowania naparu, powinieneś ustawić go na
/usr/local/bin/bash
. Należy również umieścić to w/etc/shells
.Co do twojego pytania
echo $BASH_VERSION
, powie ci wersja bieżącej powłoki.bash --version
powie ci wersję pierwszego basha w twoim$PATH
. Więc sposób, w jaki patrzyłeś na wersję, nie mówił ci, którą wersję uruchomiłeś.źródło
sudo stat -x /etc/paths
mówi mi, że nie został zmodyfikowany przez brew (i tak będziesz potrzebować sudo). Więc to musi być domyślna. I myślę, że masz rację, po wykonaniu kroków echo $ BASH_VERSION zwraca teraz 4.3.42. Dziękuję Merm!Teraz musisz zobaczyć coś takiego:
Teraz ustaw domyślną powłokę:
Teraz zamknij Terminal i otwórz go ponownie! Sprawdź, czy wszystko w porządku?
źródło
zsh
ifish
muszle.