Script Bash - Créer et manipuler un tableau

Script Bash – Comment créer et manipuler un tableau ?

I. Présentation

Dans ce tutoriel, nous allons apprendre à créer et à manipuler un tableau dans un script Bash. Nous verrons les bases des tableaux en Bash : comment initialiser un tableau, comment ajouter des éléments à ce tableau, mais aussi comment parcourir un tableau avec une boucle For.

Dans les différents langages, les tableaux sont très pratiques pour stocker plusieurs valeurs sous un même nom. Donc, nous pouvons en quelque sorte créer des listes de valeurs. Il y a différents types de tableaux en Bash, notamment des tableaux simples où chaque valeur est associée à un numéro d’index, et des tableaux associatifs où il y a des paires de données (association clé / valeur, où la clé est le texte de votre choix).

Version originale de l’article : 23 avril 2013.

Pour commencer, voyons comment déclarer et initialiser un tableau en Bash. La déclaration d’un tableau s’effectue en précisant les valeurs du tableau entre parenthèses. Ces valeurs sont séparées par un espace.

Le tableau ci-dessous contient 3 valeurs. Chaque valeur est associée à un numéro d’index, en commençant à zéro. Ce qui donne :

  • Index 0 : « Linux
  • Index 1 : « Windows »
  • Index 2 : « MacOS »
Tableau=("Linux" "Windows" "MacOS")

Nous pourrions aussi initialiser le tableau (donc un tableau vide) et venir ajouter les valeurs tour à tour. Ceci pourrait avoir de l’intérêt pour construire un tableau à partir d’une boucle.

# Déclaration d'un tableau vide
Tableau=()
# Ajouter des valeurs au tableau
Tableau+=("Linux")
Tableau+=("Windows")
Tableau+=("MacOS")

Dans ce cas, le tableau sera complété progressivement, index après index. Nous pouvons aussi stocker une valeur dans un index précis. Par exemple pour stocker une valeur dans l’index numéro 6 :

Tableau+=((6)="Android")

C’est également une possibilité offerte dès la création du tableau :

Tableau=("Linux" "Windows" "MacOS" (6)="Android")

Nous allons maintenant voir comment accéder aux éléments d’un tableau et les afficher.

Pour lire les valeurs stockées d’un tableau, nous devons spécifier l’index de l’élément désiré ou afficher l’intégralité du tableau. Pour rappel, en Bash, les indices des tableaux commencent à 0. Voici comment procéder :

# Afficher la valeur à l'index X du tableau
echo $Tableau(X)

# Afficher la première valeur du tableau
echo $Tableau(0)

# Afficher la deuxième valeur du tableau
echo $Tableau(1)

# Afficher la troisième valeur du tableau
echo $Tableau(2)

Pour afficher tous les éléments d’un tableau, nous utilisons la syntaxe suivante :

echo $Tableau(@)

L’image ci-dessous montre bien que nous avons pu lire les informations présentes dans notre tableau.

Voyons maintenant comment modifier les éléments d’un tableau.

Notre tableau est accessible en lecture et écriture, donc nous pouvons modifier ses valeurs à notre guise. Pour modifier une valeur, nous devons spécifier le numéro d’index ciblé. Voici un exemple pour écraser la valeur présente à l’index 1 du tableau :

# Modification du deuxième élément du tableau
Tableau(1)="WindowsServer"

Ce qui donne :

Modifier valeur tableau script Bash

Nous pouvons également supprimer un élément d’un tableau. Soit, nous pouvons remplacer la valeur actuelle par une valeur vide, ou utiliser la commande unset.

# Suppression du deuxième élément du tableau
Tableau(1)=""
# ou
unset Tableau(1)

De la même façon, la commande unset peut être utilisée pour détruire entièrement le tableau :

unset Tableau

Nous allons maintenant voir comment itérer sur les éléments d’un tableau.

V. Bash : parcourir un tableau avec une boucle For

L’itération sur les éléments d’un tableau est une opération fréquente lorsque l’on code un script Bash. Nous pouvons utiliser une boucle for pour parcourir tous les éléments d’un tableau, ce qui permettra d’appliquer un traitement sur chaque valeur présente dans le tableau. Ceci sera utile pour automatiser des tâches répétitives.

L’exemple ci-dessous sert uniquement à afficher dans la console un texte suivi de la valeur du tableau.

# Parcourir un tableau avec une boucle For
for TableauValeur in $Tableau(@)
do
  echo "Valeur du tableau : $TableauValeur"
done

Remarque : la variable « TableauValeur » est interne au traitement de la boucle For.

Donc, suite à l’exécution de ce bout de code, le résultat suivant est retourné dans la console :

Bash - Parcourir un tableau avec une boucle For

Comme nous l’espérions, cette méthode nous permet de traiter chaque élément du tableau individuellement.

VI. Bash : compter le nombre d’éléments dans un tableau

Nous pouvons compter le nombre d’éléments afin d’obtenir sa longueur, ou plutôt sa taille si vous préférez. Pour cela, nous devons utiliser « $#Tableau(@) » en précisant le nom de la variable correspondante à notre tableau à la place de la chaine « Tableau« .

# Déclarer le tableau
Tableau=("Linux" "Windows" "MacOS")

# Compter et afficher le nombre d'éléments dans le tableau
echo "$#Tableau(@)"

# Résultat obtenu :
3

VII. Bash : créer un tableau en lecture seule

En Bash, pour déclarer un tableau en lecture seule, c’est-à-dire dont les valeurs peuvent être lues, mais non écrasées et statique (pas possible d’ajouter des valeurs), il est nécessaire d’utiliser la commande declare.

La commande declare sous Linux est utilisée dans les scripts Bash pour définir des variables et des tableaux lorsqu’il est nécessaire de spécifier leurs attributs. C’est notamment le cas pour déclarer un tableau en lecture seule, mais aussi une variable en lecture seule. Donc, nous allons en faire usage dans le cas présent.

La commande ci-dessous sert à créer un tableau nommé « TabRo » (nom de la variable) en lecture seule (option « -r » pour « readonly« ) et avec 3 valeurs.

declare -r TabRo=("Linux" "Windows" "MacOS")

Si nous essayons de modifier ou d’ajouter une valeur à ce tableau, nous obtenons une erreur, car la variable « TabRo » est en lecture seule. Ce type de tableau est intéressant si vous souhaitez stocker des valeurs et vous assurer qu’elles ne pourront pas être écrasées.

Bash - Créer un tableau en lecture seule

VIII. Bash : créer un tableau associatif

Un tableau associatif permet d’utiliser des noms de clés personnalisés à la place des numéros d’index (0, 1, 2, 3, etc…). Nous allons introduire cette notion. La syntaxe est la suivante :

declare -A =(()="" ()="" etc...)

Nous devons utiliser la commande déclare avec l’option « -A » pour préciser explicitement qu’il s’agit d’un tableau associatif. À l’inverse, si nous utilisons « -a » à la place, nous créons un tableau simple basé sur les index.

Donc, nous pouvons créer un tableau nommé « TableauAsso » avec les clés « Pays« , « Prenom » et « Nom » chacune avec une valeur personnalisée. La déclaration du tableau devra être effectuée de cette façon :

declare -A TableauAsso=((Pays)="France" (Prenom)="Florian" (Nom)="Burnel")

Nous pouvons consulter les valeurs de ce tableau :

echo $TableauAsso(@)

Mais aussi, les clés de ce tableau :

echo $!TableauAsso(@)

Pour obtenir la valeur associée à une clé, il suffit de préciser son nom comme nous l’avions fait pour le numéro d’index :

echo $TableauAsso(Pays)

Enfin, voici le résultat en image :

Bash - Créer un tableau associatif

Il est toujours intéressant de connaître ce type de tableaux, bien que cette syntaxe soit moins répandue que celle évoquée précédemment.

IX. Bash : concaténer deux tableaux

Pour finir cet article, nous allons répondre à la problématique suivante : comment concaténer deux tableaux en Bash ? Autrement dit, nous allons fusionner nos deux tableaux pour qu’ils ne fassent qu’un.

Commençons par définir les deux tableaux nommés « Tableau1 » et « Tableau2 » :

Tableau1=("T1valeur1" "T1valeur2" "T1valeur3" "T1valeur4")
Tableau2=("T2valeur1" "T2valeur2")

Nous constatons que le premier tableau a 4 valeurs, tandis que le second tableau a 2 valeurs.

Désormais, nous allons concaténer ces deux tableaux dans un nouveau tableau correspondant à la variable « Tableau12« .

Tableau12=($Tableau1(@) $Tableau2(@))

Si nous affichons le contenu de ce nouveau tableau, nous pouvons voir qu’il contient bien les 6 valeurs !

echo $Tableau12(@)

Pour finir, le résultat en image :

Bash - Concaténer des tableaux

X. Conclusion

Suite à la lecture de ce tutoriel et grâce aux différents exemples, vous devriez être en mesure de mettre en pratique les tableaux dans vos scripts Bash ! Nous avons vu comment déclarer, lire, modifier, supprimer un tableau, mais aussi comment effectuer certaines actions un peu plus complexes.

Pour approfondir le sujet, vous pouvez consulter nos tutoriels Bash en utilisant le lien ci-dessous :

Hébergez votre site à partir de 2$ sur 👉👉👉

À propos Santana

Analyste en cybersécurité avec 5 ans d'expérience dans la protection des systèmes d'information contre les menaces et les attaques. Expertise dans la surveillance des réseaux, l'analyse des vulnérabilités, et la gestion des incidents de sécurité. Passionnée par l'innovation technologique et la mise en œuvre de solutions de sécurité robustes pour protéger les données sensibles et assurer la conformité réglementaire.

Vérifiez également

Script Bash - Affecter le résultat d'une commande à une variable

Bash : comment stocker le résultat d’une commande dans une variable ?

I. Présentation Dans ce tutoriel, nous allons apprendre à stocker le résultat d’une commande Linux …

Linux : comment renommer son terminal ?

Linux : comment renommer son terminal ?

Table de Matieres1 I. Présentation2 II. Prérequis3 III. Utiliser le terminal Mate4 IV. Fonction custom …

Linux – Afficher la branche Git dans le prompt

Linux – Afficher la branche Git dans le prompt

Table de Matieres1 I. Présentation2 II. Prérequis3 4 IV. Tester le bon fonctionnement5 V. Conclusion …

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.