2013-08-12 53 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[@]}獲得元素的數量。

我不認爲這是可能得到的內存但是它佔用的。