IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



I - Introduction


Par Nyal




  1. Introduction
  2. Fonctionnement et principe général


Introduction

Le shell-scripting est très répandu sur les plate-formes Unix et Unix-like (linux, Bsd, etc).
Ce langage est particulièrement utilisé du fait de sa rapidité de développement et sa portabilité. Dans cette optique, le shell script de type sh est le plus souvent utilisé. Malheureusement, les possibilités du shell sh sont assez limitées.
Ce tutoriel va vous permettre d'étendre les possiblités du langage via l'acquisition des bases d'un outil très utile : les tables de hashage.

Cet outil a bien entendu été créé en sh pour garder la portabilité. Vous trouverez ici des liens pour downloader cette librairie.
Pour une bonne compréhension de la librairie, il est nécessaire de connaître déjà le fonctionnement d'un shell.

Vous pouvez lire ce bon turoriel ici et passer le chapitre suivant si vous voulez simplement utiliser cette librairie et ne pas vous soucier de son fonctionnement interne.



Fonctionnement et principe général

Qu'est-ce qu'une table de hashage ?
Une table de hashage (aussi nommée tableau associatif) est un tableau associant plusieurs valeurs.
C'est ce principe qui va être simulé par la librairie. Je dis bien simulé. Seule une simulation est possible sans toucher au code source du shell, ce qui causerait la perte de la portabilité.

La simulation pose plusieurs problèmes.
Comment stocker les clés et les valeurs pour une table de hashage n ?
Comment garder le lien entre la clé et sa valeur ?

Les variables peuvent être créées dans un shell de la façon suivante :

nyal@orakio # my_var1="contenu"


Une fois les valeurs stockées, il reste à stocker les clés. Les clés seront stockées dans une variable les unes à la suite des autres sous le format suivant :

Keys => "'key1' 'key2' 'key3' ... 'keyn'"

Les clés sont entourées de quote pour des raisons qui seront expliquées par la suite.

Le problème du lien entre la clé, la valeur et la table de hashage se pose toujours. Pour remédier à cela, l'utilisation de la built-in command (commande interne du shell) eval sera indispensable. eval permettra substituera la valeur des variables au préalable. Voici donc comment seront nommées les variables en interne :

[nom de la table de hashage]_[nom de la cle] => valeur


Les clés pour une table de hashage donnée seront quant à elles stockées de la facon suivante :

[nom de la table de hashage]_Keys => valeurs de toutes les clés


Nous allons passer en revue le fonctionnement et l'utilisation des fonctions de la librairie.