Jak powiedział @William w swojej odpowiedzi, Apple nie zapewnia bash 4 z powodu ograniczeń GPL. Możesz jednak zainstalować bash 4+, a także ustawić go jako domyślną powłokę (w tym dla terminala i iTerm2 ), wykonując następujące czynności.
Zainstaluj Bash 4 przez Homebrew
Najpierw zainstaluj nowszą wersję bash. Są na to różne sposoby, wolę Homebrew.
- Zainstaluj Homebrew zgodnie z opisem na http://brew.sh .
- Zainstaluj bash za pomocą
brew install bash
.
Bash 4 jest teraz dostępny na twojej ŚCIEŻCE (zakładając, że bin Homebrew jest na twojej ścieżce). Jednak nie jest to jeszcze twoja domyślna powłoka. Możesz dowiedzieć się, gdzie się znajduje, uruchamiając which bash
. W moim przypadku jest to /usr/local/bin/bash
.
Korzystanie z Bash 4
Ponieważ jest na twojej ŚCIEŻCE, możesz rozpocząć sesję Bash 4 za pomocą just bash
lub można jej użyć w skryptach za pomocą Shebang .
Na przykład użyje określonej instancji bash.
#!/usr/local/bin/bash
...your script...
Spowoduje to użycie pierwszego uderzenia na ścieżce.
#!/usr/bin/env bash
...your script...
Możesz także ustawić ścieżkę bash dla określonych profili w Terminalu / iTerm2, wykonując kroki opisane w odpowiedzi @ user136952.
Ustaw Bash 4 jako domyślny
Jak wspomniano powyżej, po zainstalowaniu Bash 4 nadal nie jest domyślną powłoką. Aby ustawić bash jako domyślny, musisz wykonać jeszcze dwa kroki.
Najpierw dodaj ścieżkę Bash 4 do swojego /etc/shells
pliku, aby była to dozwolona powłoka logowania. Jak opisano w / etc / shells , ten plik ma listę poprawnych powłok logowania. Po dodaniu nowej ścieżki bash /etc/shells
wygląda to tak:
# 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
Następnie używamy chsh, aby ustawić go jako domyślną powłokę. Tak więc wszelkie sesje dla tego użytkownika będą korzystać z tej powłoki. Możesz przeczytać więcej na ten temat w sekcji Zmień powłokę w terminalu Mac OS X , ale rzeczywiste polecenie jest bardzo proste.
chsh -s /usr/local/bin/bash
Teraz nowy bash jest naszą domyślną powłoką logowania. Jeśli otworzysz Terminal lub iTerm2 i uruchomisz bash --version
, powinieneś zobaczyć nową wersję. Zwróć uwagę na „Licencję GPLv3 +”, dlatego Apple nie dołącza jej do systemu macOS.
$ 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>