Bash(4 이상)에서 연관 배열이 있는 경우 dict
해당 값을 다음과 같이 설정할 수 있으며 dict[apple count]=1
을 사용할 수 있습니다 ${dict[apple count]}
. Zsh는 키 이름에 공백을 허용합니까? dict[apple count]=1
Zsh에서는 작동하지 않으므로 Zsh의 구문이 다른 것 같습니다. 내가 원하는 것을 수행하지 않습니다. 키로 dict["apple count"]=1
사용하는 대신 따옴표를 키의 일부로 사용합니다.apple count
"apple count"
답변1
Zsh는 임의의 문자열을 키로 허용합니다. 문제는 파서에 있습니다.
키를 설정하려면 변수를 사용할 수 있습니다.
typeset -A dict
key='apple count'; dict[$key]=1
key=']'; dict[$key]=2
key=''; dict[$key]=3
printf %s\\n "${(k@)dict}"
답변2
(추악한) 해결 방법은 "일반 배열에 요소 추가" 구문을 사용하는 것입니다.
dict+=('apple count' 1)
Zsh는 연관 배열의 속성을 유지하므로(하나로 선언하는 한) dict['apple count']
값이 존재하는 경우 업데이트합니다. Zsh 5.5부터 덜 추악한 방법은 다음과 같습니다.
dict+=(['apple count']=1 ['orange count']=3)