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 fearan . Évalué à 1.
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 JJD . Évalué à 3.
${!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 castorpilot . Évalué à 1.
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.