Comme @William l'a dit dans sa réponse, Apple ne fournit pas bash 4 en raison des restrictions de la GPL. Vous pouvez cependant installer bash 4+ et en faire votre shell par défaut (y compris pour Terminal et iTerm2 ) en procédant comme suit.
Installer Bash 4 via Homebrew
Installez d'abord la nouvelle version de bash. Il y a plusieurs façons de le faire, je préfère Homebrew.
- Installez Homebrew comme décrit à http://brew.sh .
- Installez bash en utilisant
brew install bash
.
Bash 4 est maintenant disponible sur votre PATH (en supposant que le bin Homebrew est sur votre chemin). Cependant, il est no mais votre shell par défaut. Vous pouvez trouver où il se trouve en exécutant which bash
. Dans mon cas, c'est à /usr/local/bin/bash
.
Utilisation de Bash 4
Puisqu'il se trouve sur votre PATH, vous pouvez démarrer une session Bash 4 avec seulement bash
ou il peut être utilisé dans les scripts en utilisant une balise Shebang .
Par exemple, ceci va utiliser une instance spécifique de bash.
#!/usr/local/bin/bash
...your script...
Ceci utilisera le premier bash sur le PATH.
#!/usr/bin/env bash
...your script...
Vous pouvez également définir le chemin bash pour des profils spécifiques dans Terminal/iTerm2 en suivant les étapes décrites dans la réponse de @user136952.
Faire de Bash 4 la version par défaut
Comme mentionné ci-dessus, après l'installation de Bash 4 n'est toujours pas le shell par défaut. Pour faire de bash l'interpréteur de commandes par défaut, vous devez effectuer deux étapes supplémentaires.
Tout d'abord, ajoutez le chemin d'accès à Bash 4 dans votre fichier /etc/shells
pour qu'il soit un shell de connexion autorisé. Comme décrit dans /etc/shells ce fichier contient la liste des shells de connexion valides. Après avoir ajouté le nouveau chemin bash, mon /etc/shells
ressemble à ce qui suit :
# 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
Ensuite, nous utilisons chsh pour en faire votre shell par défaut. Ainsi, toutes les sessions de cet utilisateur utiliseront ce shell. Vous pouvez en savoir plus à ce sujet dans Changer le shell dans le terminal Mac OS X mais la commande réelle est très simple.
chsh -s /usr/local/bin/bash
Maintenant le nouveau bash est notre shell de connexion par défaut. Si vous ouvrez Terminal ou iTerm2 et exécutez bash --version
vous devriez voir la nouvelle version. Notez la "Licence GPLv3+" qui est la raison pour laquelle Apple ne l'intègre pas à 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>
5 votes
Il n'y a pas besoin de faire ça. En fait, c'est toujours une bonne idée de conserver l'original. Deux versions de bash ou plus peuvent être installées en même temps, et vous pouvez définir celle que vous voulez comme étant la version par défaut.
0 votes
Essentiellement, la mise à jour logicielle d'Apple serait responsable de la modification de la version de BASH sur le système, comme elle l'a fait avec la mise à jour de BASH pour Shellshock. Ainsi, à moins qu'Apple ne fournisse une mise à jour, il n'existe aucun moyen direct de mettre à jour la dernière version de GNU BASH installée avec OS X. Un moyen indirect serait de la télécharger vous-même, par un moyen ou un autre, de l'installer et de la définir comme votre shell par défaut. Que vous choisissiez ou non de supprimer la version livrée ou la version mise à jour par Apple, c'est vous qui décidez.
2 votes
Pour tous ceux qui, comme moi, viennent de Google, à partir de MacOS Catalina (10.15), vous pouvez définir l'interpréteur de commandes par défaut sur zsh assez facilement. zsh sera l'interpréteur de commandes par défaut de MacOS à l'avenir. Beaucoup de fonctionnalités similaires à bash. Et surtout, c'est une version à jour. Les étapes sont ici : support.apple.com/fr/HT208050
0 votes
Probablement que dans Yosemite (10.10) vous pouvez, mais dans El Capitan (10.11) la protection de l'intégrité du système support.apple.com/fr/au/HT204899 vous empêchera de modifier /bin et donc /bin/bash