Substitua a última linha do seu script por echo ${(kv)opts}
. A execução com 4.3.6 e 5.0.6 deve mostrar que 4.3.6 interpreta -K
para redefinir opts
se qualquer opção for fornecida, enquanto 5.0.6
redefine apenas opts[--opt1]
quando --opt1
é usado (deixando --opt2
ou qualquer outra entrada sozinha).
(Note que isto parece mudar entre 5.0.2 e 5.0.6; você pode pedir na lista de discussão zsh-workers para confirmar.) =