Có cách nào để có được kích thước của mảng kết hợp trong bash:Bash mảng kết hợp kích thước
declare -A array
... mà không lặp lại thông qua các yếu tố?
Kích thước sở thích là cả hai: chỉ số lượng phần tử và số lượng bộ nhớ mà nó tiêu thụ?
Có cách nào để có được kích thước của mảng kết hợp trong bash:Bash mảng kết hợp kích thước
declare -A array
... mà không lặp lại thông qua các yếu tố?
Kích thước sở thích là cả hai: chỉ số lượng phần tử và số lượng bộ nhớ mà nó tiêu thụ?
${#array[@]}
sẽ trả về kích thước của mảng.
$ declare -A array
$ array[foo]='something'
$ array[bar]='blah'
$ array[42]='nothing'
$ echo ${#array[@]}
3
Bạn có thể sử dụng ${#array[@]}
để nhận số lượng phần tử.
Tôi không nghĩ rằng có thể nhận được lượng bộ nhớ mà nó tiêu thụ.
oh đúng, hoàn toàn quên, cảm ơn bạn. Bất kỳ ý tưởng về tiêu thụ tài nguyên khi mảng trở thành kích thước đáng kể? – wick
@wick Tôi không nghĩ rằng bạn có thể xác định mức tiêu thụ tài nguyên. Hãy xem xét một cách tiếp cận thay thế nếu mảng của bạn đang trở thành thực sự * lớn *. – devnull
Tham khảo: http://www.tldp.org/LDP/abs/html/parameter-substitution.html (cuộn xuống * Độ dài biến đổi/Loại bỏ chuỗi con *). –