Các phím được truy cập sử dụng một dấu chấm than: ${!array[@]}
, các giá trị được truy cập bằng cách sử dụng ${array[@]}
.
Bạn có thể duyệt qua các cặp khóa/giá trị như thế này:
for i in "${!array[@]}"
do
echo "key : $i"
echo "value: ${array[$i]}"
done
Lưu ý việc sử dụng dấu ngoặc kép quanh biến trong báo cáo for
(cộng với việc sử dụng các @
thay vì *
). Điều này là cần thiết trong trường hợp bất kỳ phím nào bao gồm dấu cách.
Sự nhầm lẫn trong câu trả lời khác đến từ thực tế là câu hỏi của bạn bao gồm "foo" và "bar" cho cả hai khóa và các giá trị.
Nguồn
2010-06-24 19:31:41
$ tuyên bố -A mảng = ([foo] = bar [thanh] = foo) # Khởi tạo tất cả cùng một lần – anisbet
Đối với một danh sách nhỏ các giá trị khóa bạn có thể xem xét điều này: 'cho i in a, b c_s, d; làm KEY = $ {i%, *}; VAL = $ {i # *,}; echo $ KEY "XX" $ VAL; done' – math