Como @William disse em sua resposta, a Apple não fornece o bash 4 devido a restrições da GPL. No entanto, você pode instalar o bash 4+ e também pode torná-lo seu shell padrão (incluindo o Terminal e o iTerm2 ), fazendo o seguinte.
Instale o Bash 4 via Homebrew
Primeiro instale a versão mais recente do bash. Existem várias maneiras de fazer isso, eu prefiro o Homebrew.
- Instale o Homebrew conforme descrito em http://brew.sh .
- Instale o bash usando
brew install bash
.
O Bash 4 está agora disponível no seu PATH (assumindo que o bin Homebrew está no seu caminho). No entanto, ainda não é seu shell padrão. Você pode descobrir onde ele está localizado executando which bash
. No meu caso é às /usr/local/bin/bash
.
Usando o Bash 4
Como está no PATH, é possível iniciar uma sessão do Bash 4 apenas bash
ou pode ser usada em scripts usando um Shebang .
Por exemplo, isso usará uma instância específica do bash.
#!/usr/local/bin/bash
...your script...
Isso usará o primeiro bash no PATH.
#!/usr/bin/env bash
...your script...
Você também pode definir o caminho do bash para perfis específicos no Terminal / iTerm2 usando as etapas descritas na resposta de @ user136952.
Tornando o Bash 4 o padrão
Como mencionado acima, depois de instalar o Bash 4 ainda não é o shell padrão. Para tornar o bash o padrão, você precisa executar mais duas etapas.
Primeiro, adicione o caminho do Bash 4 ao seu /etc/shells
arquivo para que ele seja um shell de login permitido. Conforme descrito em / etc / shells , esse arquivo possui a lista de shells de login válidos. Depois de adicionar o novo caminho do bash, minha /etc/shells
aparência é a seguinte:
# 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
Em seguida, usamos o chsh para torná-lo seu shell padrão. Portanto, qualquer sessão desse usuário usará esse shell. Você pode ler mais sobre isso em Alterar o shell no Mac OS X Terminal , mas o comando real é muito direto.
chsh -s /usr/local/bin/bash
Agora, o novo bash é o nosso shell de login padrão. Se você abrir o Terminal ou o iTerm2 e executar, bash --version
deverá ver a nova versão. Observe a "Licença GPLv3 +" e é por isso que a Apple não o inclui no 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>