在 zsh 中,我想遍历关联数组。我需要键和值。但是当我正常迭代关联数组 ( for x in $assoc_array
) 时,我只得到值。
我看过的所有例子都表明,给定一个 key,你可以从关联数组中获取它的值。我的问题是开始获取一组密钥。
zsh 是否支持迭代关联数组中的键?
Phi*_*lip 37
在提出我的问题后,我继续搜索并在 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
Run Code Online (Sandbox Code Playgroud)
输出是:
k1 -> v1
k2 -> v2
k3 -> v3
Run Code Online (Sandbox Code Playgroud)
Rad*_*ugh 28
您可以使用这个漂亮的参数扩展同时获取键和值:
for key val in "${(@kv)assoc_array}"; do
echo "$key -> $val"
done
Run Code Online (Sandbox Code Playgroud)
请参阅Zsh 手册中的参数扩展标志。
归档时间: |
|
查看次数: |
12301 次 |
最近记录: |