SORU
24 HAZİRAN 2010, PERŞEMBE


Nasıl haşat ilişkisel dizi üzerinde yineleme

Bir bash betiği olarak ilişkilendirilebilir bir dizi temel anahtarı ve değeri almak için yinelemek istiyorum.

#!/bin/bash

declare -A array
array[foo]=bar
array[bar]=foo

Ben aslında için bir döngü kullanırken anahtarı almak için nasıl anlamıyorum. Şimdiden teşekkürler!

CEVAP
24 HAZİRAN 2010, PERŞEMBE


Erişim tuşlarını ünlem işareti kullanarak: ${!array[@]}değerler${array[@]} kullanarak erişilebilir.

Bu gibi anahtar/değer çiftleri üzerinde yineleme yapabilirsiniz:

for i in "${!array[@]}"
do
  echo "key  : $i"
  echo "value: ${array[$i]}"
done

for deyiminde değişken tırnak kullanımı (artı * yerine @) not. Bu herhangi bir anahtar boşluklar gibi durumlarda gereklidir.

Diğer yanıt karışıklık soru "foo" ve "bar" her anahtar için . içerir olmasından kaynaklanır ^em>vedeğerleri.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • backyardjay

    backyardjay

    8 ŞUBAT 2009
  • cdgotx

    cdgotx

    8 Kasım 2011
  • guillaume2111's channel

    guillaume211

    19 Kasım 2006