Wie @William in seiner Antwort sagte, bietet Apple Bash 4 aufgrund von GPL-Einschränkungen nicht an. Sie können jedoch bash 4+ installieren und es auch zu Ihrer Standard-Shell machen (einschließlich für Terminal und iTerm2 ), indem Sie die folgenden Schritte ausführen .
Installieren Sie Bash 4 über Homebrew
Installieren Sie zuerst die neuere Version von bash. Dafür gibt es verschiedene Möglichkeiten, ich bevorzuge Homebrew.
Bash 4 ist jetzt in Ihrem PATH verfügbar (vorausgesetzt, der Homebrew-Bin ist auf Ihrem Weg). Es ist jedoch noch nicht Ihre Standard-Shell. Sie können herausfinden, wo es sich befindet, indem Sie ausführen which bash
. In meinem Fall ist es bei /usr/local/bin/bash
.
Verwenden von Bash 4
Da es sich auf Ihrem PATH befindet, können Sie eine Bash 4-Sitzung mit nur starten bash
oder es kann in Skripten mit einem Shebang verwendet werden .
Dies wird beispielsweise eine bestimmte Bash-Instanz verwenden.
#!/usr/local/bin/bash
...your script...
Dies wird die erste Bash auf dem Pfad verwenden.
#!/usr/bin/env bash
...your script...
Sie können den Bash-Pfad auch für bestimmte Profile in Terminal / iTerm2 festlegen, indem Sie die in der Antwort von @ user136952 beschriebenen Schritte ausführen.
Bash 4 als Standard festlegen
Wie oben erwähnt, ist Bash 4 nach der Installation immer noch nicht die Standard-Shell. Um Bash zur Standardeinstellung zu machen, müssen Sie zwei weitere Schritte ausführen.
Fügen Sie zunächst den Bash 4-Pfad zu Ihrer /etc/shells
Datei hinzu, sodass es sich um eine zulässige Anmeldeshell handelt. Wie in / etc / shells beschrieben , enthält diese Datei die Liste der gültigen Login-Shells. Nach dem Hinzufügen des neuen Bash-Pfads /etc/shells
sieht es folgendermaßen aus:
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/bash
Als nächstes verwenden wir chsh, um es zu Ihrer Standard-Shell zu machen. Alle Sitzungen für diesen Benutzer verwenden diese Shell. Weitere Informationen hierzu finden Sie unter Ändern der Shell in Mac OS X Terminal . Der eigentliche Befehl ist jedoch sehr einfach.
chsh -s /usr/local/bin/bash
Jetzt ist die neue Bash unsere Standard-Login-Shell. Wenn Sie Terminal oder iTerm2 öffnen und ausführen bash --version
, sollte die neue Version angezeigt werden . Beachten Sie die "License GPLv3 +", weshalb Apple sie nicht mit macOS bündelt.
$ bash --version
GNU bash, version 4.4.12(1)-release (x86_64-apple-darwin16.6.0)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>