Dans bash>=4, il est possible de déclarer des tableaux classiques ou associatifs, ce qui peut être très pratique dans les boucles.

Tableaux à indices

Déclaration à la main

$ declare -a tableau
$ tableau[0]=val1
$ tableau[1]=val2
$ declare -p tableau
declare -a tableau='([0]="val1" [1]="val2")'

La même déclaration en une ligne :

$ declare -a tableau='([0]="val1" [1]="val2")'
$ declare -p tableau
declare -a tableau='([0]="val1" [1]="val2")'

Tableaux associatifs

Si on veut utiliser des chaînes de caractère au lieu des indices, c'est tout à fait possible.

$ declare -A tableau # Attention à ne pas l'oublier !
$ tableau[cle1]=val1
$ tableau[cle2]=val2

Accéder à une valeur

$ echo ${tableau[cle1]}

Compter les clés

$ echo ${#tableau[@]}

Lister les clés

$ echo ${!tableau[@]}

Boucler sur les clés en prévoyant les espaces

$ tableau[cle esp]="val 1"
$ for i in "${!tableau[@]}"
  do echo   "Clé : $i; Valeur : ${tableau[$i]}"
done
    

Va retourner

Clé : cle2; Valeur : val2
Clé : cle1; Valeur : val1
Clé : cle esp; Valeur : val 1

Pour aller plus loin, man bash, puis /declare.

Bonus : copier les arguments d'un script shell dans un autre tableau pour les manipuler

arguments=("$@")

Ajouter un Commentaire


Code de sécurité
Rafraîchir