Zsh

在 zsh 中使用關聯數組時找不到匹配項

  • April 2, 2020

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服务

zsh不支持and的typeset -A array([key]=value ...)語法。ksh``bash

取而代之的是,您應該通過交替鍵和值來簡單地初始化關聯數組:

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

正如比利叔叔所說,zsh 不理解這種語法。

但是,在 zsh >= 5.5 中添加了支持(請參閱changelog),您的程式碼段現在可以工作了。

引用自:https://unix.stackexchange.com/questions/530091