Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies.


Politique de confidentialité

Les tableaux dans script shell

 

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 :  

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.