Come ha detto @William nella sua risposta, Apple non fornisce bash 4 a causa delle restrizioni GPL. Puoi installare bash 4+ e puoi anche renderlo la tua shell predefinita (incluso per Terminal e iTerm2 ) effettuando le seguenti operazioni.
Installa Bash 4 tramite Homebrew
Prima installa la versione più recente di bash. Ci sono vari modi per farlo, preferisco l'Homebrew.
- Installa Homebrew come descritto nel link .
- Installa bash utilizzando
brew install bash
.
Bash 4 è ora disponibile sul tuo PATH (supponendo che il cestino di Homebrew sia sul tuo percorso). Tuttavia, non è ancora la tua shell predefinita. Puoi trovare dove si trova eseguendo which bash
. Nel mio caso è a /usr/local/bin/bash
.
Utilizzo di Bash 4
Dato che si trova sul tuo PATH, puoi iniziare una sessione di Bash 4 con solo bash
o può essere usata negli script usando un Shebang .
Ad esempio, verrà utilizzata un'istanza di bash specifica.
#!/usr/local/bin/bash
...your script...
Questo userà la prima bash sul PERCORSO.
#!/usr/bin/env bash
...your script...
Puoi anche impostare il percorso bash per profili specifici in Terminal / iTerm2 usando i passaggi descritti nella risposta di @ user136952.
Rendi Bash 4 l'impostazione predefinita
Come menzionato sopra, dopo aver installato Bash 4 non è ancora la shell di default. Per rendere bash l'impostazione predefinita devi fare ancora due passaggi.
Per prima cosa, aggiungi il percorso di Bash 4 al tuo file /etc/shells
in modo che sia una shell di accesso consentita. Come descritto in / etc / shells , questo file ha l'elenco delle shell di login valide. Dopo aver aggiunto il nuovo percorso bash, il mio /etc/shells
è simile al seguente:
# 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
Quindi usiamo chsh per renderlo la tua shell predefinita. Quindi qualsiasi sessione per quell'utente utilizzerà quella shell. Puoi leggere ulteriori informazioni a riguardo in Cambiare la shell nel terminale Mac OS X , ma il comando effettivo è molto semplice.
chsh -s /usr/local/bin/bash
Ora la nuova bash è la nostra shell di login predefinita. Se apri Terminal o iTerm2 ed esegui bash --version
dovresti vedere la nuova versione. Nota la "Licenza GPLv3 +", motivo per cui Apple non lo associa con 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>