回答:
この気の利いたパラメーター展開で、キーと値の両方を一度に取得できます。
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