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

  • HowToBasic

    HowToBasic

    8 Aralık 2011
  • International Secret Agents Concerts

    Internationa

    2 Aralık 2008
  • MrSuicideSheep

    MrSuicideShe

    9 NİSAN 2010