32 votes

Comment utiliser bash comme interpréteur de commandes par défaut

J'utilise El Capitan 10.11.3 avec la version 3.x de bash, j'ai donc décidé de mettre à jour bash par.. :

brew install bash

Brew place le nouveau bash sous /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.

Comme vous pouvez le voir, Brew mentionne que je dois mettre à jour /etc/shells afin d'utiliser le nouveau bash. Mais après avoir fermé/réouvert le shell actuel bash --version m'indique que j'utilise déjà la version 4.3.42. Je me demande donc ce qui s'est passé pour que la nouvelle version soit automatiquement utilisée ?

0 votes

Comment avez-vous fermé/réouvert le shell actuel ?

0 votes

@Mark clic droit sur l'icône du terminal -> quitter, clic gauche sur l'icône du terminal

37voto

vigo Points 479
brew install bash
sudo nano /etc/shells

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

# save and quit via kntrl + x

Maintenant, vous devez voir quelque chose comme ça :

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!

Maintenant, définissez votre shell par défaut :

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

Maintenant, quittez Terminal et rouvrez-le ! Vérifiez si tout va bien ?

echo $BASH_VERSION # 4.3.42(1)-release

0 votes

Cette même méthode fonctionne également pour les produits suivants zsh y fish coquilles.

13voto

MERM Points 631

Vous pouvez utiliser la commande chsh pour changer votre shell. Dans votre cas, avec le bash généré par brew, vous devriez le paramétrer à /usr/local/bin/bash . Vous devriez également mettre ceci dans /etc/shells .

Pour répondre à votre question echo $BASH_VERSION vous indiquera la version du actuel coquille. bash --version vous indique la version de la première bash dans votre $PATH . Donc, la façon dont vous regardiez la version ne vous indiquait pas la version que vous exécutiez.

0 votes

Ok, je crois que je comprends. Mais cela ne veut-il pas dire que brew a modifié mon chemin et mis /usr/local/bash dans le chemin ? Ou est-ce que /usr/local/bash est par défaut dans PATH ?

0 votes

Ok sudo stat -x /etc/paths me dit qu'il n'a pas été modifié par brew (vous aurez besoin de sudo de toute façon). Donc il doit être par défaut. Et je pense que vous avez raison, après avoir fait vos étapes echo $BASH_VERSION renvoie maintenant 4.3.42. Merci Merm !

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X