[SCRIPT-SHELL]

Fermé
fredo10 Messages postés 31 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 4 février 2006 - 6 janv. 2006 à 16:35
 mslol - 15 janv. 2008 à 01:40
salut a tous ,
j'ai bcp de mal a coder en script shell et j'aimerais avoir de l'aide sur le projet suivant:
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.
merci d'avance pour votre aide.
A voir également:

8 réponses

le vilain tek2 qui veut se faire macher le travail!!! honte à toi!
38
fredo10 Messages postés 31 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 4 février 2006 15
8 janv. 2006 à 14:55
ben j'ai vu le lien et merci pour l'assistance que tu m'apporte mais je n'ai pas le droit d'utiliser getopts pour le projet donc je suis vraiment coince. est ce ke il n'ya pas une autre methode pour y arriver sans getopts?
merci d'avance.
1
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
9 janv. 2006 à 06:06
Donc tu dois réécrire getopt...
Belles méthodes pédagogiques.
Les étudiants ne serons donc pas capables
* de lire une documentation
* de réutiliser le logiciel existant
* de faire preuve d'esprit critique.
* intégrer des bibliothèques existantes

zt ne seront pas très performants en somme.
On ferait mieux d'envoyer les enseignants en entreprise (comme chez les chinois...)
Des enseignants? Non. Des enculeurs de mouches.


Johan
0
pierreCous Messages postés 28 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 mars 2006 16
7 janv. 2006 à 15:13
Renseigne toi tout d'abord sur la fonction getopts qui permet de gerer les arguments fournit à un script. Ca va formatement de simplifier la vie dans un premier temps.

Ensuite à tu une idée de comment est formaer ton fichier sh.db ?


0
fredo10 Messages postés 31 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 4 février 2006 15
7 janv. 2006 à 16:21
svp reagissez a mon probleme je suis vraiment dans la merde. merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fredo10 Messages postés 31 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 4 février 2006 15
7 janv. 2006 à 16:26
je ne connais pas cette fonction getops est ce ke tu peux m'en dire plus?
Sinon j'ai essaye de faire quelque chose et j'ai eu droit a un message d'erreur.voici ce que j'ai tape:
if [$1="put"] ; then
echo "$2 $3" >> sh.db
else
echo Syntax error : Usage : put "<clef> <valeur>"
fi

if [$1="flush"] ; then
> sh.db
fi

si tu vois kelke chs d'anormal qui expliquerais pkoi j'ai des messages d'erreurs fais moi signe.merci.
0
pierreCous Messages postés 28 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 mars 2006 16
7 janv. 2006 à 17:22
Renseigne toi vraiment sur getopts (je site) : "Ce puissant outil analyse les arguments en ligne de commande passés au script."

http://abs.traduc.org/abs-3.7-fr/internal.html : recherche getopts sur cette page, y'a un petit d'info pour débuter.

Ca sera beaucoup plus propre que des test dans tous les sens.


Sinon pour tes premieres lignes de code
if [$1="put"]

[ est en faite une commande (c'est idem à la commande test) et $1 = "put" ] sont les paramètre de la commande [ et donc pour fournir des parametre à une commande il faut des espaces :
if [ $1 = "put" ]






--
Formation Unix/Linux : *** URL retirée par le webmaster de CommentCaMarche.net en raison de sa non-conformité à la charte. Prière d'inclure des URL vers vos sites persos dans le profil uniquement ***
0
fredo10 Messages postés 31 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 4 février 2006 15
9 janv. 2006 à 11:38
ok si c le cas cmt je pourrai faire parce ke le script shell frachement j'suis bleu. alors si je pouvais avoir des pistes je vous en serai vraiment reconaissant.merci de me mettre sur la voie.
0
fredo10 Messages postés 31 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 4 février 2006 15
9 janv. 2006 à 13:55
quelqu'un aurait l'amabilite de me mettre surla voie pour ke je reussisse mon projet s'il vous plait? merci d'avance.
0