Forum Programmation.shell Afficher le contenu d'un array bash

Posté par  .
Étiquettes : aucune
0
22
jan.
2008
Bonjour,

Auriez vous une solution élégante pour afficher correctement les éléments d'un tableau bash ?

Après avoir cherché un peu (advanced bash scripting, ...), le mieux que je trouve est :


for i in ${array[@]};do echo $i;done


Malheureusement, cet affichage est incomplet, je voudrais quelque chose du style :
array[index] = element, et pas juste 'element'.

D'autres solutions à base de boucle for sur les index ne sont pas satisfaisante, puisque bash permet de définir arbitrairement les index utilisés.

J'ai bien fini par trouver un truc avec grep et compagnie, mais je trouve ça lourd et sale.

Si quelqu'un a une solution, merci beaucoup !

PS: une solution en bash, pas de perl/python/ruby/ ....
  • # tout simplement

    Posté par  . Évalué à 1.

    for i in "${a[@]}"
    do
    echo $i;
    done
    siffisait de mettre les guillemets ^^

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • # Lister les index

    Posté par  . Évalué à 3.

    Salut,

    ${!a[*]} te donne la liste des index utilisés pour ton tableau.

    Donc tu peux obtenir ce que tu veux avec ça :

    for i in ${!a[*]} ; do echo "a[$i]=${a[$i]}" ; done

    A+
    JJD
    • [^] # Re: Lister les index

      Posté par  . Évalué à 1.

      Super !
      J'avais trouvé declare -p $1 | IFS='=' egrep -o '\[(:digit:+)\]' pour lister les index, mais evidemment, ta solution est bien mieux :)

      Merci

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.