Bash Basics Series #5 : Utiliser des tableaux dans Bash

Dans la première partie de la série, vous avez appris les variables. Les variables peuvent contenir une seule valeur.
Les tableaux peuvent contenir plusieurs valeurs. Cela facilite les choses lorsque vous devez gérer plusieurs variables à la fois. Vous n’avez pas besoin de stocker des valeurs individuelles dans une nouvelle variable.
Ainsi, au lieu de déclarer cinq variables comme ceci :
distro1=Ubuntu
distro2=Fedora
distro3=SUSE
distro4=Arch Linux
distro5=Nix
Vous pouvez tous les initialiser dans un seul tableau :
distros=(Ubuntu Fedora SUSE "Arch Linux" Nix)
Contrairement à certains autres langages de programmation, vous n’utilisez pas de virgules comme séparateurs d’éléments de tableau.
C’est bien. Voyons comment accéder aux éléments du tableau.
Contents
Accéder aux éléments du tableau dans bash
L’accès aux éléments du tableau se fait par l’index (position dans le tableau). Pour accéder à l’élément de tableau à l’index N, utilisez :
${array_name[N]}
💡
Comme la plupart des autres langages de programmation, le tableau commence à l’index 0 dans le shell Bash. Cela signifie que le premier élément a l’indice 0, le deuxième élément a l’indice 1 et le nth
l’élément a un index n-1
.
Donc, si vous voulez imprimer le SUSE, vous utiliserez :
echo ${distros[2]}

🚧
Il ne doit pas y avoir d’espace blanc après ${
ou avant }
. Vous NE POUVEZ PAS l’utiliser comme un tableau ${[n] }.
Accéder à tous les éléments du tableau à la fois
Disons que vous voulez imprimer tous les éléments d’un tableau.
Vous pouvez utiliser echo ${array[n]} un par un mais ce n’est vraiment pas nécessaire. Il existe un moyen meilleur et plus simple :
${array[*]}
Cela vous donnera tous les éléments du tableau.

Obtenir la longueur du tableau en bash
Comment savoir combien d’éléments il y a dans un tableau ? Il existe un moyen dédié d’obtenir la longueur du tableau dans Bash :
${#array_name[@]}
C’est si simple, non ?

Ajouter des éléments de tableau dans bash
Si vous devez ajouter des éléments supplémentaires à un tableau, utilisez la +=
opérateur pour ajouter un élément au tableau existant dans bash :
array_name+=("new_value")
Voici un exemple :

🚧
Il est important d’utiliser ()
lors de l’ajout d’un élément.
Vous pouvez également utiliser l’index pour définir l’élément à n’importe quelle position.
array_name[N]=new_value
Mais n’oubliez pas d’utiliser le bon numéro d’index. Si vous l’utilisez sur un index existant, la nouvelle valeur remplacera l’élément.
Si vous utilisez un index ‘hors limite’, il sera toujours ajouté après le dernier élément. Par exemple, si la longueur du tableau est de six et que vous essayez de définir une nouvelle valeur à l’index 9, il sera toujours ajouté en tant que dernier élément à la 7ème position (index 6).

Supprimer un élément du tableau
Vous pouvez utiliser unset
shell intégré pour supprimer un élément de tableau en fournissant le numéro d’index :
unset array_name[N]
Voici un exemple, où je supprime le 4ème élément du tableau.

Vous pouvez également supprimer l’ensemble du tableau avec unset :
unset array_name
💡
Il n’y a pas de règles strictes de type de données dans Bash. Vous pouvez créer un tableau contenant à la fois des entiers et des chaînes.
🏋️ Temps d’exercice
Mettons en pratique ce que vous avez appris sur les tableaux bash.
Exercice 1: Créez un script bash contenant un tableau des cinq meilleures distributions Linux. Imprimez-les tous.
Maintenant, remplacez le choix du milieu par Hannah Montanna Linux.
Exercice 2: Créez un script bash qui accepte trois nombres de l’utilisateur, puis les imprime dans l’ordre inverse.
Production attendue:
Enter three numbers and press enter
12 23 44
Numbers in reverse order are: 44 23 12
J’espère que vous aimez apprendre les scripts shell bash avec cette série. Dans le chapitre suivant, vous apprendrez à utiliser if-else. Restez à l’écoute.