Dans cet article, nous expliquerons comment vous pouvez déclarer et initialiser les tableaux associatifs dans Linux bash. Nous allons en outre développer la puissance des tableaux associatifs à l'aide de divers exemples.
Nous avons exécuté les exemples mentionnés dans cet article sur un système Debian 10 Buster. Cependant, vous pouvez facilement reproduire sur presque toutes les distros Linux.
Vérification des pré-requis
Pour utiliser des tableaux associatifs sur Linux Bash, votre version GNU bash doit être égale ou supérieure à la version 4. Ouvrez votre terminal Linux en y accédant via la recherche de lanceur d'applications. Entrez ensuite la commande suivante pour vérifier votre version installée de Bash:
$ bash --version
Ma version actuelle de bash est 5.0.3 donc je suis prêt à partir. Dans le cas où votre version bash est inférieure à 4, vous pouvez mettre à niveau Bash en exécutant la commande suivante en tant que sudo:
$ sudo apt-get install - only-mise à niveau bash
Déclarer un tableau associatif et l'initialiser
Déclarer un tableau associatif est assez simple dans Bash et peut être fait via la commande Declare:
$ Declare -Un «Arrayname»
Dans notre exemple, nous déclarerons une variable de tableau nommée Samplearray1 comme suit:
$ Declare -a Samplearray1
L'étape suivante consiste à initialiser les valeurs requises pour votre tableau. Dans notre exemple, nous voulons avoir un tableau où les valeurs sont quelques noms de pays et les clés sont leurs abréviations de nom de pays pertinentes. Ici, nous allons nourrir les valeurs du tableau, une par une comme suit:
$ ArrayName [clé] = valeur
Exemple:
$ Samplearray1 [CHN] = Chine
$ Samplearray1 [JPN] = Japon
$ Samplearray1 [Kor] = Corée
$ Samplearray1 [twn] = Taiwan
$ Samplearray1 [th] = Thaïlande
Une alternative rapide consiste à déclarer et à initialiser un tableau dans une seule commande bash comme suit:
$ Declare -a ArrayName = ([key1] = valeur1 [key2] = valeur2 [key3] = value3… . )
Voici comment nous pouvons déclarer et initialiser notre tableau mentionné, alternativement, comme suit:
$ Declare -a Samplearray1 = ([CHN] = Chine [JPN] = Japon [Kor] = Corée [twn] = Taiwan
[Th] = Thaïlande)
Maintenant, nous présenterons quelques exemples qui expliqueront ce que vous pouvez faire avec les tableaux associatifs en bash:
Exemple1: Accès aux clés et valeurs du tableau
Dans cet exemple, nous expliquerons comment vous pouvez:
Et,
Imprimer
Tu peux Imprimez une valeur contre une clé En utilisant la syntaxe de commande suivante:
$ echo $ arrayName [keyname]
Voici comment nous pouvons accéder au nom complet d'un pays en fournissant l'abréviation du nom du pays, à partir de notre Samplearray1:
$ echo $ Samplearray1 [chn]
$ echo $ Samplearray1 [twn]
Si tu es interessé par Imprimer toutes les clés de votre tableau associatif, vous pouvez le faire en utilisant la syntaxe suivante:
$ pour la clé dans "$ !ArrayName [@] "; do echo $ key; Done
La commande suivante imprimera toutes les abréviations du nom du pays de mon Samplearray1 par
Utilisation d'une boucle pour une boucle:
$ pour la clé dans "$ !Samplearray1 [@] "; do echo $ key; Done
Une autre alternative à l'impression de toutes les clés du tableau consiste à utiliser l'expansion des paramètres. La commande suivante imprimera toutes les touches dans la même ligne:
$ echo "$ !Samplearray1 [@] "
Si tu es interessé par Imprimer toutes les valeurs du tableau à la fois, Vous pouvez le faire en utilisant la boucle FOR comme suit:
$ pour val dans "$ arrayName [@]"; faire écho $ val; fait
La commande suivante imprimera tous les noms de pays complets stockés dans mon Samplearray1:
$ pour val dans "$ Samplearray1 [@]"; faire écho $ val; fait
Une autre alternative à l'impression de toutes les valeurs du tableau consiste à utiliser l'expansion des paramètres. La commande suivante imprimera toutes les valeurs dans la même ligne:
$ echo "$ Samplearray1 [@]"
Le prochain exemple utile Imprimez toutes les paires de valeurs clés tout de suite en utilisant la boucle FOR comme suit:
$ pour la clé dans "$ !Samplearray1 [@] "; do echo" $ key est une abréviation pour
$ SampleLearray1 [$ key] "; fait
Vous pouvez, bien sûr, rendre cette récupération d'informations plus utile dans vos scripts complexes et significatifs.
Exemple 2: Compter les éléments du tableau
La commande suivante peut être utilisée pour compter et imprimer le nombre d'éléments dans votre tableau associatif:
$ echo "$ # arrayName [@]"
La sortie de la commande suivante montre que j'ai cinq éléments dans mon Samplearray1:
$ echo "$ # Samplearray1 [@]"
Exemple 3: ajout de nouvelles données dans le tableau
Si vous souhaitez ajouter un élément à un tableau après l'avoir déjà déclaré et initialisé, c'est la syntaxe que vous pouvez suivre:
$ ArrayName + = ([clé] = valeur)
Dans mon exemple, je veux ajouter un autre pays avec l'abréviation de son nom de comté, donc j'utiliserai la commande suivante:
$ Samplearray1 + = ([al] = Alabama)
Faire écho aux valeurs du tableau suggère maintenant que le nouveau pays est ajouté à mon tableau:
$ echo "$ Samplearray1 [@]"
Exemple 4: Suppression de l'article du tableau
En décollant une entrée du tableau associatif, vous pouvez le supprimer comme un élément de tableau. Il s'agit de l'utilisation de la syntaxe non définie que vous pouvez utiliser pour le faire:
$ unset ArrayName [Key]
Dans mon exemple, je veux supprimer la paire de valeurs clés «Al-Alabama» de mon tableau afin que je ne se déclenche pas la clé «Al» dans ma commande:
$ unset Samplearray1 [Al]
Faire écho aux valeurs du tableau suggère maintenant que la valeur clé de l'Alabama est désormais supprimée de mon tableau:
$ echo "$ Samplearray1 [@]"
Exemple 5: Vérification si un élément existe dans le tableau
En utilisant la condition IF de la manière suivante, vous pouvez vérifier si un article est disponible dans votre tableau associatif ou maintenant:
$ if [$ arrayName [searchKey] + _]; Puis écho "existe"; else echo "non disponible"; Fi
Par exemple, si je vérifie si l'article Al-Alabama récemment supprimé existe dans mon tableau, le message suivant sera imprimé:
$ if [$ Samplearray1 [al] + _]; Puis écho "existe"; else echo "non disponible"; Fi
Si je vérifie un élément qui existe, le résultat suivant sera imprimé:
$ if [$ Samplearray1 [jpn] + _]; Puis écho "existe"; else echo "non disponible"; Fi
Exemple 6: Suppression d'un tableau
Vous pouvez supprimer un tableau associatif de votre mémoire bash en utilisant la commande unset comme suit:
$ unset ArrayName
En utilisant la commande simple suivante, je supprimerai mon Samplearray1 de la mémoire:
$ unset Samplearray1
Maintenant, quand j'essaie d'imprimer toutes les valeurs du tableau via la commande suivante, je n'en reçois pas.
$ echo "$ Samplearray1 [@]"
En utilisant ces exemples dans vos scripts Linux Bash, vous pouvez utiliser la puissance des tableaux associatifs pour obtenir une solution à de nombreux problèmes complexes.