Utiliser Array dans Linux Bash

Yahya Irmak 3 avril 2022
Utiliser Array dans Linux Bash

Bash a une structure de tableau (certains langages l’appellent une liste). Dans cet article, nous allons vous expliquer cette structure. Plus tard, nous examinerons les sujets suivants dans les scripts Bash.

  • Déclaration de tableau
  • Accéder aux valeurs du tableau
  • Ajouter une nouvelle valeur au tableau
  • Supprimer une valeur du tableau

Un tableau est une structure de données contenant des données similaires ensemble. Chaque donnée du tableau a un index, et l’index du premier élément est 0. Nous pouvons accéder à ces données séquentiellement avec une boucle ou individuellement en utilisant l’index de données. Nous pouvons également modifier le tableau, ajouter de nouvelles valeurs et supprimer des valeurs existantes.

Utiliser un tableau dans Bash

Maintenant que nous savons ce qu’est un tableau, nous pouvons examiner son utilisation dans Bash.

Déclarer un tableau

Un tableau est déclaré en mettant les valeurs entre parenthèses. Il n’y a que des espaces entre les valeurs, pas de caractères tels que des virgules. Un exemple de déclaration de tableau est ci-dessous.

arr=("black" "white" "red" "blue" "green")

Nous pouvons utiliser les méthodes suivantes pour déclarer un tableau de valeurs entières.

intArr=(1 2 3 4)
intArr=($(seq 1 4))
intArr=({1..4}) 

Ces exemples déclarent un tableau contenant les nombres 1 à 4 .

Accéder à une baie

Il existe de nombreuses façons d’accéder aux données d’un tableau. Par exemple, nous pouvons imprimer le tableau entier, accéder à un seul élément à l’aide de l’index ou accéder à chaque élément à tour de rôle avec une boucle. Expliquons chaque méthode une par une.

Accéder à l’ensemble de la baie

Nous pouvons utiliser les commandes [*] ou [@] pour accéder à toutes les valeurs contenues dans un tableau. Par exemple, utilisons ces commandes pour imprimer toutes les valeurs du tableau arr que nous avons défini ci-dessus.

arr=("black" "white" "red" "blue" "green")
echo "With *: ${arr[*]}"
echo "With @: ${arr[@]}"

Accéder à l’ensemble de la gamme

Accéder à un élément avec index

L’index du premier élément du tableau est 0, et les index des éléments suivants augmentent séquentiellement. Nous pouvons accéder à l’élément par le numéro d’index de l’élément dans le tableau. Par exemple, nous utilisons le code Bash ci-dessous pour obtenir la valeur red dans le tableau arr.

arr=("black" "white" "red" "blue" "green")
echo "${arr[2]}"

Accéder à l’élément avec index

Accéder aux éléments du tableau avec une boucle

On peut utiliser la boucle for pour accéder un par un à tous les éléments d’un tableau. Ci-dessous se trouve le script Bash qui imprimera chaque couleur du tableau arr à l’écran.

arr=("black" "white" "red" "blue" "green")
for color in ${arr[@]}; do
  echo $color
done

Éléments d’accès avec boucle

Si nous voulons accéder à ces valeurs avec le numéro d’index, nous pouvons utiliser le code ci-dessous.

arr=("black" "white" "red" "blue" "green")
for i in ${!arr[@]}; do
  echo "$i: ${arr[$i]}"
done

La commande ${!arr[@]} renvoie les index de toutes les valeurs du tableau. Ensuite, l’élément est accessible à l’aide de ces index.

Accéder aux éléments numérotés avec boucle

Ajouter un nouvel élément à un tableau

Pour ajouter un nouvel élément au tableau, nous pouvons attribuer un numéro d’index à la nouvelle valeur ou utiliser l’opérateur +=.

arr=("black" "white" "red" "blue" "green")
echo "Before adding purple: ${arr[@]}"
arr[5]="purple" # or use arr+=("purple"), exactly same
echo "After adding purple: ${arr[@]}"

Ajouter un élément au tableau

Supprimer un élément d’un tableau

Nous pouvons utiliser la commande unset pour supprimer toutes les données du tableau ou même supprimer complètement le tableau lui-même.

arr=("black" "white" "red" "blue" "green")
echo "Before removing white: ${arr[@]}"
unset arr[1]
echo "After removing white: ${arr[@]}"

Supprimer un élément du tableau

Auteur: Yahya Irmak
Yahya Irmak avatar Yahya Irmak avatar

Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.

LinkedIn

Article connexe - Bash Array