$ BASH_VERSION сообщает о старой версии bash на macOS, это проблема, которую нужно исправить? - PullRequest
1 голос
/ 13 мая 2019

У меня установлен пакет bash для homebrew.Когда я открываю новую оболочку:

bash --version дает GNU bash, version 5.0.7(1)-release (x86_64-apple-darwin18.5.0)

which bash дает /usr/local/bin/bash, как и ожидалось.

Но:

echo $BASH_VERSION приводит к 3.2.57(1)-release

Мне интересно, должен ли я обратиться к сценариям, которые могут использовать эту переменную среды.

Ответы [ 3 ]

2 голосов
/ 13 мая 2019

Ваша оболочка для входа (см. echo $SHELL), вероятно, /bin/bash, и это единственная настройка $BASH_VERSION.Если вам нужно использовать определенную версию в скриптах, используйте полный путь в строке #!.

1 голос
/ 13 мая 2019

Источником моей проблемы была настройка параметров приложения терминала. «Команда (полный путь)» была установлена ​​на /bin/bash. После установки значения «Оболочка входа в систему по умолчанию» echo $BASH_VERSION сообщил о ожидаемой версии. Другая проблема в том, что я тупо запустил команду bash --version в iTerm2, а не в терминале. Таким образом, он дал другой ответ, чем у терминала.

0 голосов
/ 13 мая 2019

Это означает, что оболочкой, в которой вы находитесь, является Bash 3.2, но bash указывает на Bash 5.0.Попробуйте bash, а затем, в новой оболочке, BASH_VERSION - я думаю, это будет 5.0.Чтобы изменить оболочку входа в систему, добавьте /usr/local/bin/bash к /etc/shells и измените оболочку по умолчанию на

chsh -s /usr/local/bin/bash
sudo chsh -s /usr/local/bin/bash

. После выхода и повторного входа $BASH_VERSION должно быть обновлено.

Какдля линий shebang я рекомендую

#!/usr/bin/env bash

, поскольку он переносим и будет использовать первый Bash в вашем $PATH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...