Ceci est une ancienne révision du document !
Tableaux
Moins utilisés que les chaînes de caractères ou les entiers, bash intègre également les tableaux monodimensionnels.
1. Définition et initialisation d’un tableau
Pour créer un tableau, on utilise généralement l'option -a (comme array) de la commande interne declare :
declare -a nomtab ...
Le tableau nomtab est simplement créé mais ne contient aucune valeur : le tableau est défini mais n'est pas initialisé.
$ declare -a
declare -a BASH_ARGC='()'
declare -a BASH_ARGV='()'
declare -a BASH_LINENO='()'
declare -a BASH_SOURCE='()'
declare -ar BASH_VERSINFO='([0]="3" [1]="1" [2]="17" [3]="1" [4]="release" [5]="i486-pc-linux-gnu")'
declare -a DIRSTACK='()'
declare -a FUNCNAME='()'
declare -a GROUPS='()'
declare -a PIPESTATUS='([0]="0")'
Comme en langage C, l'indice d'un tableau débute toujours à 0 et sa valeur maximale est celle du plus grand entier positif représentable dans ce langage (bash a été écrit en C). L'indice peut être une expression arithmétique.
$ declare -a tab => définition du tableau tab
$
$ read tab[1] tab[3]
coucou bonjour
$
$ tab[0]=hello
Il n'est pas obligatoire d’utiliser la commande interne declare pour créer un tableau, il suffit d'initialiser un de ses éléments :
$ array[3]=bonsoir => création du tableau array avec
$ => initialisation de l’élément d’indice 3
Trois autres syntaxes sont également utilisables pour initialiser globalement un tableau :
$ arr=([1]=coucou [3]=hello)
$ read -a tabmess
bonjour tout le monde
2. Valeur d'un élément d'un tableau
On obtient la valeur d'un élément d'un tableau à l’aide la syntaxe : ${nomtab[indice]}
bash calcule d'abord la valeur de l'indice puis l'élément du tableau est remplacé par sa valeur.
Il est possible d'utiliser toute expression arithmétique valide de la commande interne 1)