Les Tableaux en Shell

ShellBeginner
Pratiquer maintenant

Introduction

Dans cet atelier, vous allez apprendre à manipuler les tableaux dans la programmation shell. Les tableaux sont des structures de données qui vous permettent de stocker plusieurs valeurs sous un seul nom, facilitant ainsi l'organisation et le traitement des données. Vous apprendrez à initialiser des tableaux, à y ajouter des éléments, à accéder aux éléments par leur index et à déterminer le nombre d'éléments qu'ils contiennent. Ces connaissances sont fondamentales pour réaliser des scripts shell plus avancés et des tâches de manipulation de données complexes.

Créer un nouveau fichier de script shell

Commençons par créer un nouveau fichier de script shell dans lequel nous écrirons nos opérations sur les tableaux.

  1. Ouvrez votre terminal dans le WebIDE.

  2. Naviguez vers le répertoire du projet :

    cd ~/project
  3. Créez un nouveau fichier nommé arrays.sh à l'aide de la commande touch :

    touch arrays.sh
  4. Ouvrez le fichier arrays.sh dans le WebIDE.

Initialiser des tableaux vides

Maintenant que nous avons notre fichier de script, commençons par initialiser trois tableaux vides.

Ajoutez le code suivant à votre fichier arrays.sh :

#!/bin/bash

## Initialize empty arrays
NUMBERS=()
STRINGS=()
NAMES=()

Analysons ce que fait ce code :

  • La première ligne #!/bin/bash est appelée un shebang. Elle indique au système que ce script doit être exécuté par le shell Bash.
  • Nous créons trois tableaux vides : NUMBERS, STRINGS et NAMES.
  • La syntaxe () permet d'initialiser un tableau vide.

Ajouter des éléments aux tableaux

Maintenant que nos tableaux sont initialisés, ajoutons-y quelques éléments.

Ajoutez le code suivant à votre fichier arrays.sh, en dessous des initialisations de tableaux :

## Add elements to NUMBERS array
NUMBERS+=(1)
NUMBERS+=(2)
NUMBERS+=(3)

## Add elements to STRINGS array
STRINGS+=("hello")
STRINGS+=("world")

## Add elements to NAMES array
NAMES+=("John")
NAMES+=("Eric")
NAMES+=("Jessica")

Voici le rôle de ce code :

  • Nous utilisons l'opérateur += pour ajouter des éléments à la fin de nos tableaux.
  • Pour NUMBERS, nous ajoutons les entiers 1, 2 et 3.
  • Pour STRINGS, nous ajoutons les mots "hello" et "world".
  • Pour NAMES, nous ajoutons trois noms : "John", "Eric" et "Jessica".
  • Notez que nous entourons les éléments de type chaîne de caractères par des guillemets, alors que les nombres n'en ont pas besoin.

Déterminer le nombre d'éléments dans un tableau

Une opération courante avec les tableaux consiste à savoir combien d'éléments ils contiennent. Faisons cela pour notre tableau NAMES.

Ajoutez le code suivant à votre fichier arrays.sh :

## Get the number of elements in the NAMES array
NumberOfNames=${#NAMES[@]}

Cette ligne effectue les actions suivantes :

  • ${#NAMES[@]} nous donne le nombre total d'éléments dans le tableau NAMES.
  • Nous stockons cette valeur dans une variable nommée NumberOfNames.
  • Le symbole @ à l'intérieur des crochets fait référence à tous les éléments du tableau.
  • Le symbole # placé avant NAMES indique au shell de compter les éléments.

Accéder à un élément spécifique d'un tableau

À présent, accédons à un élément précis de notre tableau NAMES. Nous allons récupérer le deuxième nom.

Ajoutez ce code à votre fichier arrays.sh :

## Access the second name in the NAMES array
second_name=${NAMES[1]}

Voici l'explication de ce code :

  • Nous accédons au deuxième élément du tableau NAMES avec ${NAMES[1]}.
  • Rappelez-vous que dans Bash, les indices des tableaux commencent à 0, donc [1] correspond au deuxième élément.
  • Nous stockons cette valeur dans une variable nommée second_name.

Afficher les tableaux et les variables

Enfin, ajoutons du code pour afficher nos tableaux et nos variables afin de visualiser le résultat de nos opérations.

Ajoutez le code suivant à la fin de votre fichier arrays.sh :

## Print the arrays and variables
echo "NUMBERS array: ${NUMBERS[@]}"
echo "STRINGS array: ${STRINGS[@]}"
echo "The number of names listed in the NAMES array: $NumberOfNames"
echo "The second name on the NAMES list is: $second_name"

Ce code réalise les actions suivantes :

  • Nous utilisons echo pour afficher des chaînes de caractères dans la console.
  • ${NUMBERS[@]} et ${STRINGS[@]} permettent d'afficher tous les éléments de ces tableaux respectifs.
  • Nous affichons les variables NumberOfNames et second_name que nous avons créées précédemment.

Exécuter le script

Maintenant que nous avons écrit notre script, il est temps de l'exécuter pour voir les résultats.

  1. Dans votre terminal, assurez-vous d'être dans le bon répertoire :

    cd ~/project
  2. Rendez le script exécutable :

    chmod +x arrays.sh
  3. Lancez le script :

    ./arrays.sh

Vous devriez voir une sortie similaire à celle-ci :

NUMBERS array: 1 2 3
STRINGS array: hello world
The number of names listed in the NAMES array: 3
The second name on the NAMES list is: Eric

Ce résultat confirme que nos opérations sur les tableaux ont réussi :

  • Le tableau NUMBERS contient bien 1, 2 et 3.
  • Le tableau STRINGS contient "hello" et "world".
  • Nous avons correctement compté 3 noms dans le tableau NAMES.
  • Nous avons récupéré avec succès "Eric" en tant que deuxième nom.

Résumé

Dans cet atelier, vous avez appris les bases de la manipulation des tableaux en scripting shell. Vous vous êtes exercé à initialiser des tableaux, à y ajouter des éléments, à accéder à des éléments spécifiques et à déterminer la taille d'un tableau. Ces compétences sont cruciales pour des tâches de scripting plus complexes, notamment lorsque vous manipulez des listes de données ou que vous devez effectuer des opérations sur plusieurs éléments simultanément. Les tableaux offrent un moyen puissant d'organiser et de traiter les données dans vos scripts shell, rendant votre code plus efficace et plus facile à maintenir.