Cómo usar bash como shell predeterminado

14

Estoy ejecutando El Capitan 10.11.3 con la versión 3.x de bash, así que decidí actualizar bash a través de:

brew install bash

Brew coloca el nuevo bash bajo / 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, se menciona que tengo que actualizar /etc/shells para poder usar el nuevo bash. Pero después de cerrar / volver a abrir 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.

    
pregunta Mike 22.01.2016 - 15:48

2 respuestas

6

Puedes usar el comando chsh para cambiar tu shell. En su caso, con brew generado por bash, debe configurarlo en /usr/local/bin/bash . También deberías poner esto en /etc/shells .

En cuanto a su pregunta echo $BASH_VERSION le dirá la versión del current shell. bash --version te dice la versión del primer golpe en tu $PATH . Así que la forma en que mirabas la versión no te decía la versión que estabas ejecutando.

    
respondido por el MERM 22.01.2016 - 16:21
15
brew install bash
sudo nano /etc/shells

# add to last line
/usr/local/bin/bash

# save and quit via kntrl + x

Ahora, necesitas 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 configura tu shell predeterminado:

chsh -s /usr/local/bin/bash $USER # this will set for the current user.

¡Ahora salga de Terminal y vuelva a abrirlo! Comprobar si todo está bien?

echo $BASH_VERSION # 4.3.42(1)-release
    
respondido por el vigo 29.03.2016 - 22:23

Lea otras preguntas en las etiquetas