Я использую El Capitan 10.11.3 с версией bash 3.x, поэтому я решил обновить bash через:
brew install bash
Brew помещает новый bash в / 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.
Как видите, brew упоминает, что мне нужно обновить /etc/shells
, чтобы использовать новый bash. Но после закрытия / повторного открытия текущая оболочка bash --version
говорит мне, что теперь я уже использую 4.3.42, поэтому мне интересно, что произошло под капотом, что новая версия автоматически используется?
Ответы:
Вы можете использовать команду chsh для изменения вашей оболочки. В вашем случае, с bash, сгенерированным bash, вы должны установить его на
/usr/local/bin/bash
. Вы должны также вставить это/etc/shells
.По вашему вопросу
echo $BASH_VERSION
вам сообщат версию текущей оболочки.bash --version
говорит вам версию первого bash в вашем$PATH
. Таким образом, то, как вы смотрели на версию, не сообщало вам версию, на которой вы работали.источник
sudo stat -x /etc/paths
говорит мне, что он не был изменен brew (вам все равно понадобится sudo). Так что это должно быть по умолчанию. И я думаю, что вы правы, после выполнения ваших шагов echo $ BASH_VERSION теперь возвращает 4.3.42. Спасибо Мерм!Теперь вам нужно увидеть что-то вроде этого:
Теперь установите оболочку по умолчанию:
Теперь выйдите из Терминала и снова откройте его! Проверьте, все ли в порядке?
источник
zsh
иfish
снарядов.