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

  • GoProTutorials

    GoProTutoria

    18 NİSAN 2011
  • OnlyFunClips

    OnlyFunClips

    16 ŞUBAT 2012
  • Trevor Eckhart

    Trevor Eckha

    19 Aralık 2009