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

  • Alfredo Garcia

    Alfredo Garc

    25 Mayıs 2007
  • LG Mobile Global

    LG Mobile Gl

    2 EYLÜL 2010
  • stewmurray47

    stewmurray47

    1 Kasım 2006