There is an incoherent behavior among the different ways to execute the script: - sh menu.sh from terminal - bash menu.sh from terminal - ./menu.sh from terminal and - Finder "Open with" Terminal Script starts with the Shebang/hashpling #!/bin/bash In brief, in the the second case, the sentence declare -A produces an error whereas there is not error when using other methods