2013-08-12 36 views
17

有没有办法让关联数组的大小在bash:猛砸关联数组大小

declare -A array 

...不通过迭代的元素?

关注的尺寸既:只是数量的元素,和内存消耗金额是多少?

回答

23

${#array[@]}会回到你的数组的大小。

$ declare -A array 
$ array[foo]='something' 
$ array[bar]='blah' 
$ array[42]='nothing' 
$ echo ${#array[@]} 
3 
+0

哦不对,完全忘了,谢谢你。当数组变得相当庞大时,有没有关于资源消耗的想法? – wick

+1

@wick我认为你不能确定资源消耗。如果你的数组变得真的*巨大*,考虑另一种方法。 – devnull

+0

参考:http://www.tldp.org/LDP/abs/html/parameter-substitution.html(向下滚动到*可变长度/子字符串删除*)。 –

10

您可以使用${#array[@]}获得元素的数量。

我不认为这是可能得到的内存但是它占用的。