zsh에서 연관 배열을 사용할 때 일치하는 항목을 찾을 수 없습니다.

zsh에서 연관 배열을 사용할 때 일치하는 항목을 찾을 수 없습니다.

no matches foundzsh에서 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및 구문은 지원되지 않습니다 typeset -A array([key]=value ...).kshbash

대신, 키와 값을 번갈아 사용하여 연관 배열을 초기화해야 합니다.

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

답변2

Billy 삼촌이 말했듯이 zsh는 이 구문을 이해하지 못합니다.

그러나 zsh >= 5.5에 지원이 추가되었습니다(참조:변경 로그) 이제 코드 조각이 작동합니다.

관련 정보