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
및 구문은 지원되지 않습니다 typeset -A array([key]=value ...)
.ksh
bash
대신, 키와 값을 번갈아 사용하여 연관 배열을 초기화해야 합니다.
% declare -A map=(8761 "Eureka服务" 11001 "用户微服务")
% echo ${map[8761]}
Eureka服务
답변2
Billy 삼촌이 말했듯이 zsh는 이 구문을 이해하지 못합니다.
그러나 zsh >= 5.5에 지원이 추가되었습니다(참조:변경 로그) 이제 코드 조각이 작동합니다.