Come ha detto @William nella sua risposta, Apple non fornisce bash 4 a causa delle restrizioni GPL. Tuttavia, puoi installare bash 4+ e renderlo la tua shell predefinita (anche per Terminal e iTerm2 ) procedendo come segue.
Installa Bash 4 tramite Homebrew
Innanzitutto installa la versione più recente di bash. Ci sono vari modi per farlo, preferisco l'homebrew.
- Installa Homebrew come descritto su http://brew.sh .
- Installa bash usando
brew install bash
.
Bash 4 è ora disponibile sul tuo PERCORSO (supponendo che il cestino Homebrew sia sul tuo percorso). Tuttavia, è non è ancora la shell di default. Puoi trovare dove si trova eseguendo which bash
. Nel mio caso è a /usr/local/bin/bash
.
Usare Bash 4
Dal momento che è sul tuo PERCORSO, puoi avviare una sessione di Bash 4 con just bash
o può essere usata negli script usando uno Shebang .
Ad esempio, questo utilizzerà un'istanza bash specifica.
#!/usr/local/bin/bash
...your script...
Questo utilizzerà 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.
Rendere Bash 4 predefinito
Come accennato in precedenza, dopo l'installazione di Bash 4 non è ancora la shell predefinita. Per rendere bash l'impostazione predefinita, è necessario eseguire altri due passaggi.
Innanzitutto, aggiungi il percorso di Bash 4 al tuo /etc/shells
file in modo che sia una shell di accesso consentita. Come descritto in / etc / shells , questo file ha l'elenco di shell di login valide. Dopo aver aggiunto il nuovo percorso bash il mio /etc/shells
aspetto è il 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 al riguardo in Change the Shell nel Terminale di 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 raggruppa 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>