Warum kann ich Bash nicht auf die von Homebrew installierte umstellen?

Ich versuche, Bash auf Version 4.x zu aktualisieren. Ich habe das Brew-Upgrade durchgeführt, dann das Brew-Update und dann die Brew-Install-Bash. Ich rannte sudo bash -c "echo /usr/local/bin/bash >> /etc/shells"und sudo bash -c "echo /usr/local/bin/bash >> /private/etc/shells". Ich habe versucht, /usr/local/Cellar/bash/4.3.32/bin/bash mit /usr/local/bin/bash zu verknüpfen. Ich habe Terminal.app geschlossen. Ich habe mich sogar komplett vom Mac abgemeldet. Nichts, was ich tue, hat $BASH_VERSION auf das Richtige aktualisiert. bash --versionsagt das Richtige, aber ich glaube, ich habe irgendwo gelesen, dass das dann echo $BASH_VERSION(vielleicht) weniger zuverlässig ist. Hier ist eine Zusammenfassung dessen, was ich sehe:

Geben Sie hier die Bildbeschreibung ein

Ich muss es einfach wissen. . . Auf welcher Version von Bash bin ich eigentlich? Und wenn es nicht 4.x ist, wie mache ich es dann zuverlässig, endgültig ?

Ich bin auf Yosemite FWIW.

Bearbeiten:

$PATH war zu lang für einen Kommentar. Hier ist es:

/Users/AndrewNichols/.rvm/gems/ruby-2.1.1/bin:/Users/AndrewNichols/.rvm/gems/ruby-2.1.1@global/bin:/Users/AndrewNichols/.rvm/rubies/ruby-2.1.1/bin:/usr/local/heroku/bin:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/Cellar/grep/2.18/bin:/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/opt/gnu-tar/libexec/gnubin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/heroku/bin:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/Cellar/grep/2.18/bin:/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/opt/gnu-tar/libexec/gnubin:~/activator:/Users/AndrewNichols/sonarqube-4.5/bin/macosx-universal-64:/Users/AndrewNichols/sonar-runner-2.4/bin:/Users/AndrewNichols/bin:~/activator:/Users/AndrewNichols/sonarqube-4.5/bin/macosx-universal-64:/Users/AndrewNichols/sonar-runner-2.4/bin:/Users/AndrewNichols/bin:/Users/AndrewNichols/.rvm/bin

Hier ist eine Doppelpunktaufteilung zur besseren Lesbarkeit:

'/Users/AndrewNichols/.rvm/gems/ruby-2.1.1/bin',
'/Users/AndrewNichols/.rvm/gems/ruby-2.1.1@global/bin',
'/Users/AndrewNichols/.rvm/rubies/ruby-2.1.1/bin',
'/usr/local/heroku/bin',
'/usr/local/opt/coreutils/libexec/gnubin',
'/usr/local/Cellar/grep/2.18/bin',
'/usr/local/opt/gnu-sed/libexec/gnubin',
'/usr/local/opt/gnu-tar/libexec/gnubin',
'/usr/local/bin',
'/usr/bin',
'/bin',
'/usr/sbin',
'/sbin',
'/opt/X11/bin',
'/usr/local/heroku/bin',
'/usr/local/opt/coreutils/libexec/gnubin',
'/usr/local/Cellar/grep/2.18/bin',
'/usr/local/opt/gnu-sed/libexec/gnubin',
'/usr/local/opt/gnu-tar/libexec/gnubin',
'~/activator',
'/Users/AndrewNichols/sonarqube-4.5/bin/macosx-universal-64',
'/Users/AndrewNichols/sonar-runner-2.4/bin',
'/Users/AndrewNichols/bin',
'~/activator',
'/Users/AndrewNichols/sonarqube-4.5/bin/macosx-universal-64',
'/Users/AndrewNichols/sonar-runner-2.4/bin',
'/Users/AndrewNichols/bin',
'/Users/AndrewNichols/.rvm/bin'

Ein Teil der Duplizierung ist darauf zurückzuführen, dass ich das Terminal so eingestellt habe, dass es beim Start tmux ausführt, sodass .bashrc zweimal bezogen wird.

Wo und wie haben Sie die Login-Shell für Ihr Benutzerkonto geändert?
chsh -s /usr/local/bin/bash. Grundsätzlich wie hier beschrieben .
was ist die Ausgabe von echo $PATH?
@njboot - Siehe meine Änderungen oben.

Antworten (2)

Okay, anscheinend geschah dies, weil tmux an der ursprünglichen Bash-Version festhielt (obwohl ich tmux beendet und seine Konfiguration neu geladen hatte). tmux kill-servergefolgt von einem Neustart von tmux hat es für mich behoben.

Dies sollte Ihr Problem beheben.

mv /bin/bash /bin/bash3 

und erstellen Sie dann einen Symlink zu

ln -s /usr/local/bin/bash /bin/bash

Das sollte Ihr Problem beheben.

Ich bin kein Experte, aber das klingt nach einer wirklich schlechten Idee. Eigentlich bin ich mir ziemlich sicher, dass dies mit SIP auf 10.11 und höher unmöglich ist.
Nun, ich bin auf Yosemite, also ist SIP nicht unbedingt ein Problem. Aber es klingt in jedem Fall fragwürdig. Ich fühlte mich komisch genug, /usr/local/bin/bash nach /usr/local/bin/bash.bak zu verschieben, damit ich das Homebrew symbolisieren konnte.