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にサポートが追加されました(参照:変更ログ)これでコードスニペットが機能します。