【发布时间】:2020-12-11 10:24:09
【问题描述】:
考虑下面的关联数组:
declare -A shapingTimes
shapingTimes=([0-start]=15 [0-stop]=21 [0-anotherkey]=foo)
shapingTimes+=([1-start]=4 [1-stop]=6 [1-anotherkey]=bar)
shapingTimes+=([2-start]=9 [2-stop]=11 [2-anotherkey]=blah)
有没有办法找到数组中每个条目使用的键总数? (这是数组中的每个“索引”吗?)
例如,如何计算:[start]、[stop]、[anotherkey] as = 3 个键?
目前我正在使用我发现(如下所示)的代码中的硬编码值 (3),它可以很好地完成工作,但我想知道这是否可以动态实现?
totalshapingTimes=$((${#shapingTimes[*]} / 3))
我发现这些变量返回各种数组方面,但不返回键的总数。
echo "All of the items in the array:" ${shapingTimes[*]}
echo "All of the indexes in the array:" ${!shapingTimes[*]}
echo "Total number of items in the array:" ${#shapingTimes[*]}
echo "Total number of KEYS in each array entry:" #???
期望的输出:
All of the items in the array: 21 6 11 blah 15 4 bar 9 foo
All of the indexes in the array: 0-stop 1-stop 2-stop 2-anotherkey 0-start 1-start 1-anotherkey 2-start 0-anotherkey
Total number of items in the array: 9
Total number of KEYS in each array entry: 3
【问题讨论】:
标签: arrays bash associative-array