base de donnee en SCRIPT SHELL
Sujet en cours de lecture : base de donnee en SCRIPT SHELL par | (Haut de page) |
base de donnee en SCRIPT SHELL
fred
email
Envoyé le : 09/01/2006 à 12:45
Synopsis
bdsh.sh [-k] [-f <db_file>] (put (<clef> | $<clef>) (<valeur> | $<clef>) |
del (<clef> | $<clef>) [<valeur> | $<clef>] |
select [<expr> | $<clef>] |
flush)
Il s'agit d'écrire un script shell émulant les fonctionnalités simples
d'une base de données. Cette base sera contenue dans un unique fichier
"sh.db" dont on pourra éventuellement passer le nom en paramètre grâce à
l'option `-f'.
Les paramètres du script seront les suivants:
- put <clef> <valeur> - Ajoute une clef <clef> contenant la valeur
<valeur>. Si la clef existe déjà, la valeur est écrasée.
Rien n'est affiché.
- del <clef> [<valeur>] - Efface la clef <clef>. Si la valeur est ommise,
la clef reste présente sans contenu. Si la clef n'existe pas ou si la
valeur ne correspond pas à celle de la clef, il ne se passe rien.
Rien n'est affiché.
- flush - Vide toutes les entrées présentes dans la base. Le fichier lui
même n'est pas supprimé.
- select [<expr>] - Permet d'afficher les valeurs dont les clefs
matchent <expr>, ou toutes les valeurs si aucun paramètre n'est passé.
C'est le matching de la commande grep qui est utilisé. On utilisera
pour l'affichage l'ordre du fichier, qui sera l'ordre chronologique
d'insertion ou de modification.
Lorsqu'une valeur doit etre affichée, elle est seule sur une ligne.
Si l'option `-k' est activée, la clef doit aussi etre affichée de la
facon suivante :
<clef>=<valeur>
Pas d'espace ou autres caractères mis à part le '=' entre la clef sa valeur.
Il vous faudra également gérer :
./bdsh put <clef> $<clef_existante>
./bdsh put $<clef_1> $<clef_2>
./bdsh del <clef> $<clef>
./bdsh del $<clef_1> $<clef_2>
./bdsh select $<clef>
La commande select ne mélange pas les clefs et les expressions régulieres.
C'est le $ en debut d'expression qui détermine si c'est une clef ou non.
Exemple : ./bdsh put key1 val1
./bdsh put key2 '$key1'
./bdsh put '$key2' key1
./bdsh select "ey"
val1
val1
./bdsh select "1"
val1
key1
./bdsh select '$key2'
key1
./bdsh select '[2-9]$'
val1
Traitement correct des erreurs
messages : "Syntax error : Usage ...."
"No such key : ..." pour les $<clef> non existantes
"No base found : file ..."
bdsh.sh [-k] [-f <db_file>] (put (<clef> | $<clef>) (<valeur> | $<clef>) |
del (<clef> | $<clef>) [<valeur> | $<clef>] |
select [<expr> | $<clef>] |
flush)
Il s'agit d'écrire un script shell émulant les fonctionnalités simples
d'une base de données. Cette base sera contenue dans un unique fichier
"sh.db" dont on pourra éventuellement passer le nom en paramètre grâce à
l'option `-f'.
Les paramètres du script seront les suivants:
- put <clef> <valeur> - Ajoute une clef <clef> contenant la valeur
<valeur>. Si la clef existe déjà, la valeur est écrasée.
Rien n'est affiché.
- del <clef> [<valeur>] - Efface la clef <clef>. Si la valeur est ommise,
la clef reste présente sans contenu. Si la clef n'existe pas ou si la
valeur ne correspond pas à celle de la clef, il ne se passe rien.
Rien n'est affiché.
- flush - Vide toutes les entrées présentes dans la base. Le fichier lui
même n'est pas supprimé.
- select [<expr>] - Permet d'afficher les valeurs dont les clefs
matchent <expr>, ou toutes les valeurs si aucun paramètre n'est passé.
C'est le matching de la commande grep qui est utilisé. On utilisera
pour l'affichage l'ordre du fichier, qui sera l'ordre chronologique
d'insertion ou de modification.
Lorsqu'une valeur doit etre affichée, elle est seule sur une ligne.
Si l'option `-k' est activée, la clef doit aussi etre affichée de la
facon suivante :
<clef>=<valeur>
Pas d'espace ou autres caractères mis à part le '=' entre la clef sa valeur.
Il vous faudra également gérer :
./bdsh put <clef> $<clef_existante>
./bdsh put $<clef_1> $<clef_2>
./bdsh del <clef> $<clef>
./bdsh del $<clef_1> $<clef_2>
./bdsh select $<clef>
La commande select ne mélange pas les clefs et les expressions régulieres.
C'est le $ en debut d'expression qui détermine si c'est une clef ou non.
Exemple : ./bdsh put key1 val1
./bdsh put key2 '$key1'
./bdsh put '$key2' key1
./bdsh select "ey"
val1
val1
./bdsh select "1"
val1
key1
./bdsh select '$key2'
key1
./bdsh select '[2-9]$'
val1
Traitement correct des erreurs
messages : "Syntax error : Usage ...."
"No such key : ..." pour les $<clef> non existantes
"No base found : file ..."
Pas de réponse
Ecrire une réponse | (Haut de page) |
* Au moins un des champs marqués d'une astérisque doit être renseigné