GNU/Linux >> Tutoriels Linux >  >> Linux

Tableau associatif dans Bash

Tout programmeur sait à quel point les variables sont vitales. Les variables agissent comme des relais pour les codeurs/programmeurs où ils transmettent les informations dans les deux sens. Les variables sont généralement cruciales en informatique car elles permettent au code d'être dynamique. En d'autres termes, les variables sont appelées espaces réservés d'informations qui changent à plusieurs reprises en fonction de leur utilisation. Cependant, un problème important qui a affecté la plupart des codeurs et programmeurs est le suivi de nombreuses variables dans un projet.

Cela a tendance à être une nuisance pour la plupart des programmeurs sur le terrain. Il existe une solution ultime à ce problème qui est les tableaux. Un tableau en programmation est connu comme une structure de données qui stocke des éléments avec le même type de données. Les tableaux sont idéaux pour le stockage d'une collection de données. Les tableaux sont d'une grande importance pour presque tous les langages de codage, sans oublier les langages de script tels que Bash. Cet article se concentrera davantage sur les tableaux associatifs dans Bash.

Les langages de script Shell sont connus pour offrir aux utilisateurs la possibilité de créer, interroger, mettre à jour et manipuler des tableaux indexés. Ne soyez pas confus par le terme tableaux indexés puisqu'il s'agit d'une liste d'éléments précédés d'un nombre. La liste et le numéro attribué sont enveloppés dans une variable, ce qui facilite la présentation de votre code.

Tableau associatif dans Bash

Le langage de script Bash présente un avantage supplémentaire car il peut créer des tableaux associatifs et il traite les tableaux comme un tableau normal. La fonction principale d'un tableau associatif permet à l'utilisateur de développer des listes contenant des clés/index et des valeurs plutôt que de simples valeurs numérotées. La fonctionnalité des tableaux associatifs a été incluse dans bash 4, ce qui signifie qu'avant de commencer, nous allons examiner la version actuelle de Bash à l'aide de la ligne de commande ci-dessous :

bash --version

Sortie

Si votre version de bash n'est pas la version 4 et supérieure, vous devrez la mettre à jour pour qu'elle fonctionne. Ne vous inquiétez pas car les étapes sont simples. Bash peut être mis à jour sur un serveur Ubuntu à l'aide de la fameuse commande apt-get. Certains utilisateurs peuvent avoir besoin de mettre à jour leur Bash, et pour ce faire, ouvrez votre terminal et exécutez les commandes suivantes :

sudo apt-get install --only-upgrade Bash

La commande mettra à jour le shell bash vers la version la plus récente de votre système d'exploitation Ubuntu. Pour vérifier que la mise à jour a réussi, exécutez la commande ci-dessus pour vérifier la version installée/mise à jour du shell bash (Bash –version). Cette commande imprimera une console avec la version actuelle du shell bash sur votre serveur Ubuntu.
Si, dans certains cas, Bash n'est pas installé sur votre serveur Ubuntu, ne paniquez pas. Exécutez les commandes ci-dessous pour installer Bash :

sudo apt update
sudo apt install bash

Déclaration et initialisation d'un tableau associatif

Dans Bash, un tableau associatif peut être déclaré à l'aide du mot-clé "declare". Les éléments de tableau, en revanche, peuvent être initialisés lors d'une déclaration de tableau ou après la déclaration d'une variable. Le script ci-dessous créera un tableau nommé assArray1, et les quatre autres valeurs du tableau sont initialisées individuellement comme indiqué

declare -A assArray1
assArray1[fruit]=Mango
assArray1[bird]=Cockatail
assArray1[flower]=Rose
assArray1[animal]=Tiger

Sortie

Lors de la déclaration du tableau, le script suivant nommé assArray2 initialisera un tableau associatif. Au moment de la déclaration, trois valeurs de tableau avec des clés sont définies.

declare -A assArray2=( [HDD]=Samsung [Monitor]=Dell [Keyboard]=A4Tech )

Sortie

Comment accéder au tableau associatif

Il existe deux formes auxquelles un utilisateur peut accéder à un tableau associatif. Premièrement, ils sont accessibles individuellement, et deuxièmement, ils sont accessibles à l'aide d'une boucle. Ne vous inquiétez pas des méthodes mentionnées ci-dessus, car elles seront couvertes dans le didacticiel. Veuillez noter que les clés et les valeurs d'un tableau peuvent être imprimées ensemble ou séparément. En spécifiant la valeur de la clé, la ligne de commande ci-dessous imprimera deux valeurs de tableau. Nous utiliserons assArray1 pour illustrer.

echo ${assArray1[bird]}
echo ${assArray1[flower]}

Sortie

Vous verrez un écran similaire à celui ci-dessous après avoir exécuté les lignes de commande mises en évidence ci-dessus.

Lors de l'impression, il vous sera parfois demandé d'imprimer toutes les clés et valeurs d'un tableau. Cela peut être fait en utilisant une extension de périmètre bash ou une boucle. Tout d'abord, regardons l'impression à l'aide d'une boucle. Si vous avez déjà suivi un cours de programmation, vous devez avoir rencontré ce terme plusieurs fois. Exécutez la commande ci-dessous pour imprimer toutes les clés et valeurs d'un tableau.

for key in "${!assArray1[@]}"; do echo $key; done

Sortie

La commande suivante utilisera l'expansion du paramètre bash pour imprimer toutes les clés et valeurs d'un tableau

echo "${!assArray1[@]}"

Sortie

Remarque :le symbole " !" dans les deux commandes est utilisé pour lire les clés du tableau associatif.

Par conséquent, nous avons vu que toutes les valeurs du tableau peuvent être imprimées en utilisant soit une extension de paramètre bash, soit une boucle. Vous trouverez ci-dessous un autre exemple pour élaborer sur l'utilisation des deux méthodes. La première commande imprimera les valeurs du tableau à l'aide d'une boucle, tandis que la seconde commande imprimera les valeurs du tableau à l'aide d'une extension de paramètre bash.

for val in "${assArray1[@]}"; do echo $val; done

Sortie

echo "${assArray1[@]}"

Sortie

Remarque :la méthode loop peut être utilisée pour imprimer à la fois les clés et les valeurs d'un tableau associatif. Pour illustration, nous utiliserons notre premier tableau, assArray1. Dans cette méthode, chaque clé de tableau doit être analysée à chaque étape de la boucle. La clé utilisée est ensuite utilisée comme index de tableau qui aide à lire les valeurs des clés correspondantes.
Exécutez la ligne de commande ci-dessous

for key in "${!assArray1[@]}"; do echo "$key => ${assArray1[$key]}"; done

Sortie

Comment ajouter des données à un tableau associatif

Après déclaration et initialisation du tableau, il est possible d'ajouter de nouveaux éléments de tableau à un tableau associatif. En utilisant notre deuxième tableau, assArray2, une nouvelle valeur, "HP" et la clé "Mouse" seront ajoutées au tableau, après quoi les éléments actuels du tableau seront revérifiés. Pour terminer les étapes mentionnées ci-dessus, exécutez les commandes suivantes

echo "${assArray2[@]}"
assArray2+=([Mouse]=Logitech)
echo "${assArray2[@]}"

Sortie

Vous aurez une sortie similaire à celle ci-dessous après avoir exécuté les commandes ci-dessus.

Comment supprimer des données d'un tableau associatif

En fonction de la valeur de la clé, une valeur d'élément dans un tableau associatif peut être supprimée. Lors de la suppression de données, la commande "unset" est très pratique. La commande supprime des données particulières dans un tableau associatif. Par exemple, de notre assArray2, supprimons la valeur qui contient la clé 'Monitor'. La commande vérifiera si la valeur a la clé "Moniteur". Ensuite, avec l'aide de la commande non définie, la valeur sera supprimée. La commande 'echo' est utilisée pour vérifier et déterminer si la valeur a été supprimée ou non.

unset assArray2[Monitor]
echo ${assArray2[Monitor]}

Sortie

Si la commande s'exécute avec succès, vous obtiendrez une sortie similaire à celle mise en évidence ci-dessous

Comment trouver un index manquant dans un tableau associatif

Une instruction conditionnelle, dans ce cas, est essentielle car elle aide à savoir s'il manque un index dans un tableau. Par exemple, nous pouvons rechercher la clé de tableau "Monitor" que nous avons récemment supprimée. Pour ce faire, nous allons exécuter une commande d'instruction if pour vérifier si la clé existe ou non. N'oubliez pas que nous avons supprimé la clé de notre exemple précédent. Par conséquent, la valeur fausse doit être imprimée.

if [ ${assArray2[Monitor]+_} ]; then echo "Found"; else echo "Not found"; fi

Sortie

Comment supprimer un tableau associatif

La commande "unset" utilisée pour supprimer des données d'un tableau associatif est également utilisée pour supprimer un tableau associatif. Dans cet exemple, nous utiliserons notre premier tableau, qui est assArray1. La première commande imprimera les valeurs du tableau. La deuxième commande contenant la commande 'unset' supprimera le tableau. La commande finale vérifiera si le tableau existe ou non. Si le tableau a été supprimé avec succès, il n'y aura rien sur la console de sortie.

echo "${assArray1[@]}"
unset assArray1
echo "${assArray1[@]}"

Sortie

Tableaux de données

Pour le stockage des données associées, les tableaux sont importants. Vous pouvez être amené à utiliser des variables pour stocker des données, mais ce n'est pas le moyen le plus approprié de stocker et de suivre de grandes pistes de données. Par conséquent, pour garder vos données plus indexées et consolidées, vous devrez alors utiliser des tableaux. En outre, l'utilisation de tableaux pour stocker et conserver une grande trace de données est plus efficace que l'utilisation de variables. Les tableaux n'ont pas besoin d'une entrée pour exister comme c'est le cas dans les variables. Vous ne devez pas vous soucier de la quantité exacte de données à stocker avant de travailler dessus. Cela rend les tableaux avantageux lorsqu'il s'agit de données étendues et imprévisibles. En bref, les tableaux sont beaucoup plus puissants que les variables, et ils sont couramment utilisés dans la plupart des langages de programmation et des langages de script comme Bash.

Conclusion

L'utilisation d'un tableau associatif pour le stockage de données est essentielle lors du stockage de données massives contenant des paires clé-valeur dans Bash. L'article a expliqué comment déclarer et initialiser des tableaux associatifs, analyser des clés et des valeurs de tableau, ajouter et supprimer des éléments de tableau, supprimer un tableau associatif et des tableaux de données. Par conséquent, nous espérons que tous nos lecteurs seront désormais en mesure de mettre en œuvre tous les sujets abordés pour améliorer leurs connaissances et leur compréhension des tableaux associatifs. Essayez-le maintenant.


Linux
  1. Parenthèse unique dans l'affectation de variables Bash ?

  2. Obtenir tous les fichiers sauf les fichiers du tableau - Bash ?

  3. Tableau dans Bash introuvable

  4. convertir la sortie bash `ls` en tableau json

  5. Convertir une chaîne de texte en bash en tableau

Tableaux bash

Bash Shebang

Bash Scripting - Tableau associatif expliqué avec des exemples

Bash Scripting - Tableau indexé expliqué avec des exemples

Bash Beginner Series #4 :Utiliser des tableaux dans Bash

Comment déclarer un tableau 2D dans bash