Standard-Shell auf MacPorts Bash in Mac OS X 10.6.8 setzen?


11

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.


1
Sie haben die Schale also schon einmal zerbrochen und möchten sehen, wie es wieder geht? Der Grund 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.
Alan Shutko

Antworten:


18

sh --versionist wahrscheinlich das gleiche wie /bin/sh --version. Wenn die aktuelle Shell Bash ist, können Sie ihre Version mit sehen echo $BASH_VERSION. Wenn Sie die Standard-Login-Shell mit chsh ändern, können Sie die Standard-Shell des Terminals als Login-Shell beibehalten.

  1. sudo port install bash
  2. Hinzufügen /opt/local/bin/bashzu/etc/shells
  3. chsh -s /opt/local/bin/bash
  4. Öffnen Sie eine neue Registerkarte und überprüfen Sie echo $BASH_VERSION

echo $SHELLzeigt deutlicher an, welche Shell ausgeführt wird.
Victor Sergienko
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.