bash关联数组键string冒号给出错误

我正在创build一个源和目标MAC地址的关联数组。

$ declare -a SrcDstMap $ SrcDstMap["9c:4e:20:73:e2:72"]="ff:ff:ff:ff:ff:ff" -bash: 9c: value too great for base (error token is "9c") $ SrcDstMap["fc:4e:20:73:e2:72"]="ff:ff:ff:ff:ff:ff" -bash: fc:4e:20:73:e2:72: syntax error in expression (error token is ":4e:20:73:e2:72") 

我怎么能告诉bash,给定的键是一个完整的string。

这不是一个关联数组。 你需要使用declare -A ,而不是declare -a

 $ declare -A SrcDstMap $ SrcDstMap["9c:4e:20:73:e2:72"]="ff:ff:ff:ff:ff:ff" $ declare -p SrcDstMap declare -A SrcDstMap=([9c:4e:20:73:e2:72]="ff:ff:ff:ff:ff:ff" ) 

declare -a创建一个数字索引的数组,因此shell试图将您的索引解析为一个数字。