Я использую OS X Yosemite. Мне нужно использовать ассоциативные массивы в bash, поэтому я решил использовать Homebrew для обновления bash до 4.x. Я выполнил следующие шаги:
brew install bash
- Затем я добавил
/usr/local/bin/bash
в/etc/shells
и перезагрузил для хорошей меры. chsh -s /usr/local/bin/bash
- Для хорошей меры я вышел из системы и снова вошел в систему, хотя простого перезапуска терминала, вероятно, было бы достаточно.
Когда я открываю Терминал, все кажется хорошо. Если я скажу $SHELL --version
я получу GNU bash, version 4.3.30(1)-release (x86_64-apple-darwin14.0.0)
. К сожалению, если я скажу echo $BASH_VERSION
я получу 3.2.53(1)-release
. Кроме того, я не могу использовать какие-либо из расширенных функций Bash 4.x, например, ассоциативные массивы, например, declare -A foo
говорит -bash: declare: -A: invalid option
.
Интересно, что echo $0
говорит -bash
.
Что тут происходит? Как мне получить мои ассоциативные массивы?