Les tableaux dans script shell
Dans le langage de programmation C, un tableau est une variable permettant de stocker uniquement le même type de données. Alors que dans le script bash, un tableau est une variable permettant de contenir plusieurs valeurs du même type ou de différents types de données. Toute variable peut être utilisée comme un tableau. Il n'y a pas de limite maximale à la taille d'un tableau. Il n'est pas obligatoire que les variables de tableau soient indexées ou assignées de manière contiguë ou consécutive. Le concept de tableau n'était pas supporté par le Bourne Shell original, mais les versions plus récentes de bash et d'autres shells plus récents supportent le concept de tableau. Les versions plus récentes de bash prennent en charge les tableaux unidimensionnels. Par défaut, dans le script shell, tout est traité comme une chaîne de caractères.
Déclarer un tableau
Il existe de nombreuses façons de déclarer un tableau dans un script shell, qui sont décrites ci-dessous :
Déclaration indirecte
Le tableau est déclaré à l'aide de la syntaxe suivante :
NOMTAB[INDICE]=valeur
où INDICE est une valeur numérique qui doit être un nombre positif. Il n'est pas nécessaire de déclarer le tableau en premier. Par exemple:
Etudiant[1]= 20 Etudiant[3]= "Mostafa" Etudiant[4]= "Meknes" Etudiant[5]=17.5
Déclaration explicite
Dans une déclaration explicite d'un tableau, nous utilisons la commande intégrée declare, comme indiqué ci-dessous :
declare -a NOMTAB
Tout d'abord, déclarez le tableau, puis attribuez les valeurs.
Déclaration classique
Une variable de tableau peut également être créée en utilisant l'affectation composée. Il est utile de déclarer un tableau avec un groupe de valeurs, comme la syntaxe donnée ci-dessous :
NOMTAB=(val val2 .... valN)
Vous pouvez également ajouter d'autres valeurs plus tard. Ou
[indice=] chaîne de caractères
L'indice est facultatif. S'il est donné, il est assigné comme un indice, sinon, l'indice de l'élément assigné est le numéro du dernier indice qui a été assigné, plus un en utilisant la commande intégrée declare. Si aucun numéro d'indice n'est défini, l'indexation commence à 0. Par exemple, un tableau entier peut être déclaré en mettant les valeurs du tableau entre parenthèses comme indiqué ci-dessous :
Villes=(Meknes Paris Lille Marrakech Rabat)
Afficher les éléments d’un tableau
Pour afficher les valeurs d'un tableau, vous pouvez utiliser la syntaxe suivante.
echo ${NOMTAB[INDICE]}
Pour faire référence au contenu d'un élément dans un tableau, utilisez des accolades. Si le numéro d'indice d'un tableau est @ ou *, tous les éléments d'un tableau sont référencés ou pris en compte. Par exemple:
#!/bin/bash Villes=(Meknes Paris Lille Marrakech Rabat) echo "Tous les éléments ${Villes[*]} " echo "Le premier élément : ${Villes[0]} " echo "Le premier élément : ${Villes} " # ajouter un élément Villes[5]=Lyon echo "Tous les éléments ${Villes[@]} "
devinfo@ubuntu:~/scripts$ tab.sh Tous les éléments Meknes Paris Lille Marrakech Rabat Le premier élément : Meknes Le premier élément : Meknes Tous les éléments Meknes Paris Lille Marrakech Rabat Lyon
Supprimer des éléments du tableau
Pour supprimer un élément du tableau ou supprimer un tableau, utilisez la commande intégrée unset avec le nom du tableau et le numéro d'indice de l'élément ou sa clé. Par exemple:
#!/bin/bash Villes=(Meknes Paris Lille Marrakech Rabat) echo "Tous les éléments : ${Villes[*]} " unset Villes[3] echo "Tous les éléments : ${Villes[*]} " unset Villes[*] echo "Tous les éléments : ${Villes[*]} "
devinfo@ubuntu:~/scripts$ tab.sh Tous les éléments : Meknes Paris Lille Marrakech Rabat Tous les éléments : Meknes Paris Lille Rabat Tous les éléments :