No recomendaría que la instalación de Homebrew de bash sea el comando bash
o sh
de todo el sistema. Sin embargo, debería estar bien para usar como tu shell personal.
Homebrew proporciona una instalación de vainilla de Gnu Bash . Le faltarán las adiciones de Apple al shell que se proporcionan si utiliza los binarios bash
o sh
suministrados por Apple o el código fuente de sitio opensource.apple.com . Cualquier script de shell a nivel de sistema operativo proporcionado por Apple puede depender de la extensión de Apple y de los cambios en la función.
Homebrew también instala, por defecto, una versión 4.3.x de bash:
> brew info bash
bash: stable 4.3.24 (bottled), HEAD
http://www.gnu.org/software/bash/
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/bash.rb
==> Dependencies
Required: readline ✘
==> Caveats
In order to use this build of bash as your login shell,
it must be added to /etc/shells.
Esta es una versión significativamente diferente de la versión 3.2.x que viene con OS X 10.9.x. No es 100% compatible con versiones anteriores. Por ejemplo, extracción de subcadenas en la indexación de parámetros posicionales cambió de 3 a 4. Podría romper el nivel del sistema scripts.
Ambas razones pueden llevar a scripts de sistema inoperables en tu Mac si cambias a las versiones de Homebrew de bash
y sh
para cualquier otra cosa que no sea tu shell personal. Puede hacer que su shell personal sea Homebrew bash
shell ejecutando:
chsh -s /usr/local/bin/bash
y luego cierre sesión y vuelva a iniciar sesión. Esto debería ser relativamente seguro para el funcionamiento estable de su máquina.
Si el comando chsh
falla y dice que /usr/local/bin/bash
no es un shell aceptable, deberá agregarlo a la lista en /etc/shells
ejecutando:
sudo vim /etc/shells
Se debe agregar en una nueva línea en el archivo, de esta forma:
> cat /etc/shells
# 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/zsh
/usr/local/bin/bash