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
# 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[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
# 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
Nous pouvons également déclarer d'abord un tableau associatif, puis définir les clés et les valeurs :
Exemple
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
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
# 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
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
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
# 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 数组元素个数为: 4Autres extensions