Sto eseguendo OS X Yosemite. Ho bisogno di usare array associativi in bash, quindi ho deciso di usare Homebrew per aggiornare bash a 4.x. Ho eseguito i seguenti passaggi:
brew install bash- Ho poi aggiunto
/usr/local/bin/basha/etc/shellsed ho ripartito per buona misura. chsh -s /usr/local/bin/bash- Per buona misura, mi sono disconnesso e riconnesso, anche se probabilmente sarebbe stato sufficiente un semplice riavvio del Terminale.
Quando apro Terminal, le cose sembrano andare bene. Se dico di $SHELL --versionavere GNU bash, version 4.3.30(1)-release (x86_64-apple-darwin14.0.0). Sfortunatamente, se dico di echo $BASH_VERSIONavere 3.2.53(1)-release. Inoltre, non riesco a utilizzare una delle funzioni avanzate di 4.x Bash, come array associativi, per esempio, declare -A foodice -bash: declare: -A: invalid option.
È interessante notare, echo $0dice -bash.
Cosa sta succedendo qui? Come ottengo i miei array associativi?
which bashdà /usr/local/bin/bash.
/etc/pathsha /usr/local/binprima /usr/bin, quindi non sembra essere questo il problema.