Estoy ejecutando El Capitan 10.11.3 con bash versión 3.x, así que decidí actualizar bash a través de:
brew install bash
Brew coloca el nuevo bash en /usr/local/Cellar/bash:
brew info bash
bash: stable 4.3.42 (bottled), devel 4.4-beta, HEAD
Bourne-Again SHell, a UNIX command interpreter
https://www.gnu.org/software/bash/
/usr/local/Cellar/bash/4.3.42 (59 files, 7.3M) *
Poured from bottle
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.
Como puede ver, Brew menciona que necesito actualizar /etc/shells
para usar el nuevo bash. Pero después de cerrar/reabrir el shell actual, bash --version
me dice que ahora ya estoy usando 4.3.42, así que me pregunto qué sucedió bajo el capó de que la nueva versión se usa automáticamente.
Puede usar el comando chsh para cambiar su shell. En su caso, con bash generado por cerveza, debe establecerlo en /usr/local/bin/bash
. También deberías poner esto /etc/shells
.
En cuanto a su pregunta echo $BASH_VERSION
, le indicará la versión del shell actual . bash --version
le dice la versión del primer bash en su archivo $PATH
. Entonces, la forma en que miraba la versión no le decía la versión que estaba ejecutando.
sudo stat -x /etc/paths
me dice que no fue modificado por brew (necesitará sudo de todos modos). Así que debe ser por defecto. Y creo que tienes razón, después de hacer tus pasos echo $BASH_VERSION ahora devuelve 4.3.42. Gracias Merm!brew install bash
sudo nano /etc/shells
# add to last line
/usr/local/bin/bash
# save and quit via kntrl + x
Ahora, usted necesita ver algo como esto:
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/bash # we added this!
Ahora configure su shell predeterminado:
chsh -s /usr/local/bin/bash $USER # this will set for the current user.
¡Ahora sal de la Terminal y vuelve a abrirla! Comprobar si todo bien?
echo $BASH_VERSION # 4.3.42(1)-release
zsh
shells fish
.
mmmmmm
Miguel