在 zsh 中使用关联数组时未找到匹配项

在 zsh 中使用关联数组时未找到匹配项

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 ...)的语法。kshbash

相反,您应该简单地通过交替键和值来初始化关联数组:

% declare -A map=(8761 "Eureka服务" 11001 "用户微服务")
% echo ${map[8761]}
Eureka服务

答案2

正如比利叔叔所说,zsh 无法理解这种语法。

但是,在 zsh >= 5.5 中添加了支持(请参阅变更日志)并且您的代码片段现在可以工作了。

相关内容