Tableaux Shell

Un tableau peut stocker plusieurs valeurs. Bash Shell ne prend en charge que les tableaux unidimensionnels (ne prend pas en charge les tableaux multidimensionnels). Vous n'avez pas besoin de définir la taille du tableau lors de l'initialisation (similaire à PHP).

Comme dans la plupart des langages de programmation, les indices des éléments de tableau commencent à 0.

Les tableaux Shell sont représentés par des parenthèses, et les éléments sont séparés par des symboles "espace". Le format de syntaxe est le suivant :

array_name=(value1 value2 ... valuen)

Exemple

Créer un tableau simplemy_array:

Exemple

#!/bin/bash
# auteur : Tutoriel pour débutants
# url:www.example.com

my_array=(A B "C" D)

Nous pouvons également utiliser des indices numériques pour définir un tableau :

Exemple

array_name[0]=value0
array_name[1]=value1
array_name[2]=value2

Lecture des tableaux

Le format général pour lire les valeurs des éléments d'un tableau est :

${array_name[index]}

L'exemple suivant lit les éléments du tableau par indice numérique :

Exemple

#!/bin/bash
# auteur : Tutoriel pour débutants
# url:www.example.com

my_array=(A B "C" D)

echo "Le premier élément est :${my_array[0]}"
echo "Le deuxième élément est :${my_array[1]}"
echo "Le troisième élément est :${my_array[2]}"
echo "Le quatrième élément est :${my_array[3]}""

Exécutez le script, et le résultat de sortie est le suivant :

$ chmod +x test.sh 
$ ./test.sh
第一个元素为: A
第二个元素为: B
第三个元素为: C
第四个元素为: D

Tableaux associatifs

Bash prend en charge les tableaux associatifs, où des chaînes de caractères ou des entiers arbitraires peuvent être utilisés comme indices pour accéder aux éléments du tableau.

Les tableaux associatifs utilisent la commandedeclarepour les déclarer, le format de syntaxe est le suivant :

declare -A array_name

-AL'option est utilisée pour déclarer un tableau associatif.

Les clés d'un tableau associatif sont uniques.

Dans l'exemple suivant, nous créons un tableau associatifsite, et créons différentes paires clé-valeur :

Exemple

declare -A site=(["google"]="www.google.com" ["example"]="www.example.com" ["taobao"]="www.taobao.com")

Nous pouvons également déclarer d'abord un tableau associatif, puis définir les clés et les valeurs :

Exemple

declare -A site
site["google"]="www.google.com"
site["example"]="www.example.com"
site["taobao"]="www.taobao.com"

Vous pouvez également affecter des valeurs lors de la définition :

Pour accéder aux éléments d’un tableau associatif, vous pouvez utiliser la clé spécifiée. Le format est le suivant :

array_name["index"]

Dans l’exemple suivant, nous accédons aux éléments d’un tableau associatif par clé :

Exemple

declare -A site
site["google"]="www.google.com"
site["example"]="www.example.com"
site["taobao"]="www.taobao.com"

echo ${site["example"]}

Exécutez le script, et le résultat de sortie est le suivant :

www.example.com

Obtenir tous les éléments d’un tableau

Utilisez@ou*pour obtenir tous les éléments du tableau, par exemple :

Exemple

#!/bin/bash
# auteur : Tutoriel pour débutants
# url:www.example.com

my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D

echo "Les éléments du tableau sont :${my_array[*]}"
echo "Les éléments du tableau sont :${my_array[@]}"

Exécutez le script, et le résultat de sortie est le suivant :

$ chmod +x test.sh 
$ ./test.sh
数组的元素为: A B C D
数组的元素为: A B C D

Exemple

declare -A site
site["google"]="www.google.com"
site["example"]="www.example.com"
site["taobao"]="www.taobao.com"

echo "Les éléments du tableau sont :${site[*]}""
echo "Les éléments du tableau sont :${site[@]}""

Exécutez le script, et le résultat de sortie est le suivant :

$ chmod +x test.sh 
$ ./test.sh
数组的元素为: www.google.com www.example.com www.taobao.com
数组的元素为: www.google.com www.example.com www.taobao.com

Ajoutez un point d'exclamation avant le tableau!pour obtenir toutes les clés du tableau, par exemple :

Exemple

declare -A site
site["google"]="www.google.com"
site["example"]="www.example.com"
site["taobao"]="www.taobao.com"

echo "Les clés du tableau sont :${!site[*]}""
echo "Les clés du tableau sont :${!site[@]}""

Exécutez le script, et le résultat de sortie est le suivant :

数组的键为: google example taobao
数组的键为: google example taobao

Obtenir la longueur d'un tableau

La méthode pour obtenir la longueur d'un tableau est la même que la méthode pour obtenir la longueur d'une chaîne, par exemple :

Exemple

#!/bin/bash
# auteur : Tutoriel pour débutants
# url:www.example.com

my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D

echo "Le nombre d'éléments du tableau est :${#my_array[*]}""
echo "Le nombre d'éléments du tableau est :${#my_array[@]}""

Exécutez le script, et le résultat de sortie est le suivant :

$ chmod +x test.sh 
$ ./test.sh
数组元素个数为: 4
数组元素个数为: 4
Autres extensions