如何从Bash关联数组的键创建索引数组?
从Bash关联数组的键创建索引数组的方法
没问题,这在Bash里其实很简单,利用内置的参数展开特性就能轻松搞定!
首先,你已经定义了这样的关联数组:
declare -A hash hash[one]=1 hash[two]=2 hash[third item]=3
核心方法:获取键并赋值给索引数组
只需要一行命令,就能把关联数组的所有键提取出来,存入一个索引数组:
# 声明并初始化索引数组,值为关联数组的所有键 declare -a keys_array=("${!hash[@]}")
这里的关键语法是"${!hash[@]}":
!符号告诉Bash我们要获取的是数组的键,而不是值- 加上双引号
""非常重要,它能保留包含空格的键(比如你的third item),避免被错误拆分成多个数组元素
验证结果
你可以通过循环打印索引数组的内容来确认是否正确:
for key in "${keys_array[@]}"; do echo "$key" done
执行后会输出:
one two third item
这样就完美把关联数组的键转换成索引数组啦!
内容的提问来源于stack exchange,提问作者codeforester
相关产品推荐
相关产品推荐

