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

  • ChrisCrossMedia

    ChrisCrossMe

    17 EYLÜL 2009
  • Leigh Momii

    Leigh Momii

    10 Mayıs 2006
  • lissaandbeauty

    lissaandbeau

    24 Aralık 2011