Im Anschluss an meine vorherige Frage habe ich meine MacPorts neu installiert und möchte die neuere Version von bash erneut versuchen.
Ich habe die neueste Bash über MacPorts auf meinem Mac OS X 10.6.8-System installiert, aber als ich eine Terminal.app-Sitzung startete, zeigte der Befehl "sh --version", dass ich immer noch die alte Bash 3.2.48 verwendete. Dies gilt auch dann, wenn "which bash" auf die neuere Version 4.2.37 verweist, die von MacPorts installiert wurde.
Ich habe versucht, die Terminal.app-Einstellungen so zu ändern, dass die neue Bash als Standard verwendet wird, / etc / shells geändert und mit dem Befehl chsh die MacPorts-Bash als Standard angegeben. Keine dieser Methoden war jedoch erfolgreich. Was vermisse ich? Vielen Dank.
which bash
, warum die neuere Shell angezeigt wird, aber die ältere ausgeführt wird, ist, dass die Shell über den absoluten Pfad (/ bin / bash) gestartet wird und dem Pfad nicht folgt. Was sowieso keine Rolle spielen würde, da der Pfad nicht so eingestellt ist, dass er MacPorts enthält, bis .bashrc ausgeführt wird.Antworten:
sh --version
ist wahrscheinlich das gleiche wie/bin/sh --version
. Wenn die aktuelle Shell Bash ist, können Sie ihre Version mit sehenecho $BASH_VERSION
. Wenn Sie die Standard-Login-Shell mit chsh ändern, können Sie die Standard-Shell des Terminals als Login-Shell beibehalten.sudo port install bash
/opt/local/bin/bash
zu/etc/shells
chsh -s /opt/local/bin/bash
echo $BASH_VERSION
quelle
echo $SHELL
zeigt deutlicher an, welche Shell ausgeführt wird.