Kann ich jetzt, da MacOS Catalina auf zsh umgezogen ist, bash 3.2.57 mit 5.0.3 aktualisieren?

Ich verstehe den Wechsel von Apple von bash zu zsh, obwohl ich es wirklich vorziehen würde, wenn sie die Änderung nicht vorgenommen hätten.

Ich habe zsh ausprobiert und entschieden, dass ich lieber bei bash bleiben möchte.

Da MacOS Catalina also /bin/bash nicht mehr verwendet, werde ich auf irgendwelche Probleme stoßen, wenn ich es durch die neue Version ersetze? ( 3.2.57 mit 5.0.3 ).

Ich wäre vorher nicht auf die Idee gekommen, dies zu tun, da es durchaus möglich gewesen wäre, dass ein Teil des Betriebssystems auf eine Funktion angewiesen war, die sich in neuen Versionen geändert hatte.

Aber jetzt, dass /bin/bash nicht offiziell verwendet wird, können wir es ändern?

Wenn ja, wäre das ein wirklich positiver Nebeneffekt des Wechsels zu zsh. Wir können unsere Benutzerkonten mit unseren Linux-Konten kompatibel halten, die alle zsh verwenden, und die neueste Version auf allen unseren Maschinen ausführen, ohne die Gefahr eines Konflikts mit dem Betriebssystem zu haben.

Die Frage enthält viele Dinge. Können Sie sich bitte auf eine Frage pro Beitrag konzentrieren?
Trotzdem: /bin/bashgeht nicht weg, Ihr Girokonto sowie alle Shell-Skripte funktionieren wie bisher.
Auf dieser Site sollten Sie Antworten finden, wie Sie Shells ändern können. Informationen zu nicht kompatiblen Änderungen zwischen bash3 und bash5 sollten auf den üblichen Sites verfügbar sein.
Ich habe die Frage aktualisiert - bitte könnten Sie sie erneut öffnen. Ich suche keine Informationen zu den Unterschieden, sondern nur die einfache Frage, ob es in Ordnung ist, Bash auf Catalina zu aktualisieren
Sie können nicht ändern, /bin/bashda es durch SIP geschützt ist. Wie andere vorgeschlagen haben, können Sie eine neue zu hinzufügen . Ich wollte nur sicherstellen, dass klar ist, dass Sie es nicht entfernen können, selbst wenn Sie wollten (das sollten Sie auch nicht, da Sie nicht wissen, was es kaputt machen könnte). bash/usr/local/bin//bin/bash
Unabhängig davon, ob Sie Bash 5 statt Bash 3 verwenden möchten, können Sie, wenn Sie einfach Bash statt Zsh verwenden möchten, wie es vor Catalina der Standard war, Ihre Standard-Shell mit auf Bash ändern und die Bash-Deprecation- chsh -s /bin/bashMeldung unterdrücken .

Antworten (3)

Sie können (und sollten) nicht einfach ändern/aktualisieren /bin/bash. Sie können jedoch eine neuere Version von Homebrew installieren bashund die Informationen von How to use bash as default shell verwenden , um Ihre Login-Shell zu ändern.

Dadurch werden keine vorhandenen Bash-Skripte beschädigt, auf die #!/bin/bashin der ersten Zeile verwiesen wird.

Sie können die neueste Bash über Homebrew installieren. Es gibt bereits eine Anleitung , wie man es per Homebrew installiert.

Brew installieren über:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Holen Sie sich nach der Installation die neueste Version von bash über brew.

Verwendung:

$ brew install bashinstalliert die neueste Version von bash.

Binärdateien in /{,usr/}{,s}bin/sollten normalerweise nicht durch andere Dateien ersetzt werden. Andere Programme erwarten, dass es sich um die Versionen handelt, die mit OS X geliefert wurden, und sie werden durch Betriebssystem-Upgrades ersetzt.

Nachdem Sie brew install bash ausgeführt haben, können Sie die Standard-Shell sicher ändern, indem Sie:

  • Hinzufügen /usr/local/bin/bashzu/etc/shells
  • Betriebchsh -s /usr/local/bin/bash.

Beim Ausführen bash -versionsollte jetzt die neueste Version angezeigt werden.

Ich wähle hier einen Nit aus, Homebrew wird /bin/bash nicht aktualisieren, es wird parallel eine neue Version (auch bekannt als Side-Grade) in /usr/local/bin installieren, der Pfad ist aufgelistet, aber jemand kommt hierher, um es zu lernen könnte den Satz "You can update bash via homebrew" falsch interpretieren

Catalina verwendet Bash nicht mehr als Standard-Shell für neue Konten . /bin/bashwird weiterhin dort verbleiben, sodass vorhandene Skripte, die es aufrufen, weiterhin ohne Änderung funktionieren.

/binenthält csh, ksh, sh, sowie bashund zsh.

Sie können natürlich eine neuere Version von Bash installieren und Ihre vorhandenen Skripte (oder Ihre Shell-Umgebung) ändern, um diese stattdessen zu verwenden. Es kann Unterschiede zwischen der alten und der neuen Version geben, die eine Änderung des Skripts erfordern.