no matches found
我在zsh中使用map时遇到:
#!/bin/zsh
declare -A map=(["8761"]="Eureka服务" ["11001"]="用户微服务")
为什么会发生这种情况,我该如何解决?这是错误:
~/source/dolphin/dolphin-scripts/bash/tool on master! ⌚ 20:57:52
$ ./batch-terminal-process.sh
./batch-terminal-process.sh:14: no matches found: [8761]=Eureka服务
答案1
zsh
不支持andtypeset -A array([key]=value ...)
的语法。ksh
bash
相反,您应该简单地通过交替键和值来初始化关联数组:
% declare -A map=(8761 "Eureka服务" 11001 "用户微服务")
% echo ${map[8761]}
Eureka服务
答案2
正如比利叔叔所说,zsh 无法理解这种语法。
但是,在 zsh >= 5.5 中添加了支持(请参阅变更日志)并且您的代码片段现在可以工作了。