Answers:
通过这个漂亮的参数扩展,您可以同时获取键和值:
for key val in ${(kv)assoc_array}; do
echo "$key -> $val"
done
请参见Zsh手册中的参数扩展标志。
问完问题后,我继续搜索,并在Unix StackExchange上找到以下答案:
typeset -A assoc_array
assoc_array=(k1 v1 k2 v2 k3 v3)
for k in "${(@k)assoc_array}"; do
echo "$k -> $assoc_array[$k]"
done
输出为:
k1 -> v1
k2 -> v2
k3 -> v3
$options
。(请参阅man zshoptions
)
for i in a,b c_s,d ; do KEY=${i%,*}; VAL=${i#*,}; echo $KEY" XX "$VAL; done