Unix / Linux - Utilisation des tableaux Shell

Dans ce chapitre, nous verrons comment utiliser les tableaux shell sous Unix. Une variable shell est suffisamment capable de contenir une seule valeur. Ces variables sont appelées variables scalaires.

Shell prend en charge un autre type de variable appelé un array variable. Cela peut contenir plusieurs valeurs en même temps. Les tableaux fournissent une méthode de regroupement d'un ensemble de variables. Au lieu de créer un nouveau nom pour chaque variable requise, vous pouvez utiliser une seule variable de tableau qui stocke toutes les autres variables.

Toutes les règles de dénomination décrites pour les variables Shell seraient applicables lors de la dénomination des tableaux.

Définition des valeurs de tableau

La différence entre une variable de tableau et une variable scalaire peut être expliquée comme suit.

Supposons que vous essayez de représenter les noms de divers étudiants sous la forme d'un ensemble de variables. Chacune des variables individuelles est une variable scalaire comme suit -

NAME01="Zara"
NAME02="Qadir"
NAME03="Mahnaz"
NAME04="Ayan"
NAME05="Daisy"

Nous pouvons utiliser un seul tableau pour stocker tous les noms mentionnés ci-dessus. Voici la méthode la plus simple pour créer une variable de tableau. Cela permet d'attribuer une valeur à l'un de ses indices.

array_name[index]=value

Ici, nom_tableau est le nom du tableau, index est l'index de l'élément dans le tableau que vous souhaitez définir et valeur est la valeur que vous souhaitez définir pour cet élément.

À titre d'exemple, les commandes suivantes -

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"

Si vous utilisez le ksh shell, voici la syntaxe d'initialisation du tableau -

set -A array_name value1 value2 ... valuen

Si vous utilisez le bash shell, voici la syntaxe d'initialisation du tableau -

array_name=(value1 ... valuen)

Accès aux valeurs de tableau

Après avoir défini une variable de tableau, vous y accédez comme suit -

${array_name[index]}

Ici, nom_tableau est le nom du tableau et index est l'index de la valeur à accéder. Voici un exemple pour comprendre le concept -

#!/bin/sh

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Index: ${NAME[0]}"
echo "Second Index: ${NAME[1]}"

L'exemple ci-dessus générera le résultat suivant -

$./test.sh
First Index: Zara
Second Index: Qadir

Vous pouvez accéder à tous les éléments d'un tableau de l'une des manières suivantes:

${array_name[*]}
${array_name[@]}

Ici array_name est le nom du tableau qui vous intéresse. L'exemple suivant vous aidera à comprendre le concept -

#!/bin/sh

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Method: ${NAME[*]}"
echo "Second Method: ${NAME[@]}"

L'exemple ci-dessus générera le résultat suivant -

$./test.sh
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan Daisy