Problema estranho com a atualização do bash em Yosemite usando o Homebrew

4

Estou executando o OS X Yosemite. Eu preciso usar matrizes associativas no bash, então decidi usar o Homebrew para atualizar o bash para o 4.x. Eu executei os seguintes passos:

  1. brew install bash
  2. Em seguida, adicionei /usr/local/bin/bash a /etc/shells e reiniciei por medida boa.
  3. chsh -s /usr/local/bin/bash
  4. Para uma boa medida, eu efetuei logout e login novamente, embora um simples reinício do Terminal provavelmente tenha sido suficiente.

Quando abro o Terminal, as coisas parecem estar bem. Se eu disser $SHELL --version , recebo GNU bash, version 4.3.30(1)-release (x86_64-apple-darwin14.0.0) . Infelizmente, se disser echo $BASH_VERSION , recebo 3.2.53(1)-release . Além disso, parece que não consigo usar nenhum dos recursos avançados do Bash 4.x, como matrizes associativas, por exemplo, declare -A foo says -bash: declare: -A: invalid option .

Curiosamente, echo $0 diz -bash .

O que está acontecendo aqui? Como obtenho minhas matrizes associativas?

    
por Gregory Higley 05.11.2014 / 23:30

1 resposta

4

Eu tive um problema semelhante, e ficou com o caminho my #! . Verifique se você não está apontando para:

#!/bin/bash

mas em:

#!/usr/local/bin/bash

Se você quiser continuar a usar #!/bin/bash no topo, talvez queira:

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

Atualização:

Se o seu $PATH tiver /url/local/bin antes de /bin e /usr/bin , basta fazer:

#!/usr/bin/env bash

para uma solução menos específica da configuração do OS X / Homebrew.

    
por 07.12.2014 / 00:30