86 votes

Liste ou structure de tableau modifiable dans Bash ? Comment s'y ajouter facilement ?

J'essaie de collecter des valeurs de cordes dans un script bash. Quelle est la façon la plus simple d'ajouter des valeurs de chaîne à une liste ou une structure de tableau de sorte que je puisse les faire résonner à la fin ?

147voto

Dennis Williamson Points 105818
$ arr=(1 2 3)
$ arr+=(4)
$ echo ${arr[@]}
1 2 3 4

Puisque Bash utilise des tableaux épars, vous ne devriez pas utiliser l'élément count ${#arr} comme indice. Vous pouvez cependant obtenir un tableau d'indices comme celui-ci :

$ indices=(${!arr[@]})

20voto

foo=(a b c)
foo=("${foo[@]}" d)
for i in "${foo[@]}"; do echo "$i" ; done

5voto

codaddict Points 154968

Pour ajouter à ce que Ignacio a suggéré dans une autre réponse :

foo=(a b c)
foo=("${foo[@]}" d) # push element 'd'

foo[${#foo[*]}]="e" # push element 'e'

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

5voto

ghostdog74 Points 86060
$ for i in "string1" "string2" "string3"
> do
> array+=($i)
> done
$ echo ${array[@]}
string1 string2 string3

2voto

ennuikiller Points 28005

La syntaxe assez obscure pour ajouter à la fin d'un tableau dans Bash est illustrée par l'exemple suivant :

myarr[${#myarr[*]}]="$newitem"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X