Ich verwende El Capitan 10.11.3 mit der Bash-Version 3.x, also habe ich beschlossen, Bash zu aktualisieren über:
brew install bash
Brew platziert die neue Bash unter / 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.
Wie Sie sehen können, erwähnt Brew, dass ich ein Update durchführen /etc/shells
muss, um die neue Bash zu verwenden. Aber nach dem Schließen / erneuten Öffnen bash --version
sagt mir die aktuelle Shell , dass ich bereits 4.3.42 verwende, und ich frage mich, was unter der Haube passiert ist, dass die neue Version automatisch verwendet wird.
Antworten:
Sie können den Befehl chsh verwenden, um Ihre Shell zu ändern. In Ihrem Fall sollten Sie bei gebrühtem Bash den Wert auf setzen
/usr/local/bin/bash
. Sie sollten dies auch in setzen/etc/shells
.In Bezug auf Ihre Frage
echo $BASH_VERSION
erfahren Sie die Version der aktuellen Shell.bash --version
sagt Ihnen die Version der ersten Bash in Ihrem$PATH
. Die Art und Weise, wie Sie die Version betrachteten, sagte Ihnen also nicht, welche Version Sie ausgeführt haben.quelle
sudo stat -x /etc/paths
sagt mir, dass es nicht durch Brauen modifiziert wurde (Sie werden sowieso sudo brauchen). Es muss also Standard sein. Und ich denke, Sie haben Recht, nachdem Sie Ihre Schritte ausgeführt haben, gibt echo $ BASH_VERSION jetzt 4.3.42 zurück. Vielen Dank, Merm!Nun müssen Sie so etwas sehen:
Legen Sie jetzt Ihre Standard-Shell fest:
Beenden Sie nun das Terminal und öffnen Sie es erneut! Überprüfen Sie, ob alles in Ordnung ist?
quelle
zsh
undfish
Shells funktioniert .