cod*_*321 7 macos bash dictionary
我已经遵循了每个 bash 字典示例,但没有一个起作用。我现在有了
_配置:
#!/bin/bash
instance_map["dev"]=project-dev
instance_map+=( ["stage"]="project-staging" )
declare -A animals=( ["moo"]="cow" ["woof"]="dog")
Run Code Online (Sandbox Code Playgroud)
测试.sh:
#!/bin/bash
source _CONFIG
echo ${instance_map["dev"]}
echo ${instance_map["stage"]}
echo "${animals[moo]}"
for sound in "${!animals[@]}"; do echo "$sound - ${animals[$sound]}"; done
Run Code Online (Sandbox Code Playgroud)
出于某种原因,在遵循每个示例之后,我得到
$ ./test.sh dev
_CONFIG: line 9: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
project-devproject-staging
project-devproject-staging
dog
0 - dog
$ bash --version
GNU bash, version 4.4.0(1)-release (x86_64-apple-darwin15.6.0)
Run Code Online (Sandbox Code Playgroud)
如何在 Bash 中将用户输入“dev”映射到“myprojectname”?
通过升级 bash 解决了该问题。$BASH_VERSION打印您的真实版本
brew unlink bash
brew update && brew install bash
Run Code Online (Sandbox Code Playgroud)
测试.sh:
declare -A instance_map=( ["dev"]="project-dev" ["stage"]="project-staging" ["prod"]="project" )
echo ${instance_map["dev"]}
echo ${instance_map["stage"]}
Run Code Online (Sandbox Code Playgroud)