Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/10/2006, à 00:37

gene69

[résolu][Compilation]Shell

Est ce que quelqu'un connait quelquechose sur la création d'un shell? (calqué sur bash 3)

je suis en panne de mot clefs

Dernière modification par gene69 (Le 24/10/2006, à 17:27)


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#2 Le 24/10/2006, à 02:04

foobar2000

Re : [résolu][Compilation]Shell

Tu veux dire que tu cherches a recoder un shell ?


Aucun rapport avec le logiciel du même nom.

Hors ligne

#3 Le 24/10/2006, à 08:44

gene69

Re : [résolu][Compilation]Shell

ouaip wink


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#4 Le 24/10/2006, à 14:46

baltimore

Re : [résolu][Compilation]Shell

gene69 a écrit :

Est ce que quelqu'un connait quelquechose sur la création d'un shell? (calqué sur bash 3)

je suis en panne de mot clefs

Ce projet est un projet mythique dans mon école et donc je l'ai moi même fait smile

Il faut considérer plusieurs parties au shell :
- Tout d'abord, il s'agit de faire un lexer/parser, qui va servir à vérifier que ta ligne de commande ne contient pas de lexical error (caractère invalide) ou de syntax error (suite de mots invalide ex : if then echo toto; fi). Pour cela, il est très conseillé, voir indispensable de construire l'AST (Abstract Syntax Tree) correspondant.
Avec cet AST, tu vas pouvoir appeller récursivement les commandes étant donné que tu utilises une structure de données d'arbre.
Pour le construire, il faut considérer les mots spéciaux, ici par exemple : '|' , ';' , '&', 'if', 'then', etc...
- Ensuite il s'agit de coder les fonctions pour les caractères spéciaux (par exemple pour le pipe, ta fonction comportera des fork, pour une commande simple, un appel aux execv* ou pas si c'est une built-in)
Beaucoup de choses sont à gérer : la gestion des processus, l'arithmétique $(()), toutes les built-ins.
Il s'agit de bien réfléchir avant de commencer pour n'avoir qu'à ajouter des fonctionnalités à ton Shell.

Je t'ai donné un Topo rapide, si tu as d'autres questions, continue ce thread.

Bon courage


Baltimore ~~ Secrétaire de l'association Prologin
Prologin ~~ Concours National d'Informatique ~~ www.prologin.org

Hors ligne

#5 Le 24/10/2006, à 17:23

gene69

Re : [résolu][Compilation]Shell

Merci... c'est plus détaillé que ce que je voulais.
je vais passé résolu.

Concours prologin... Je connais quelqu'un qui l'a gagné. Et je vais le voir en action le 7 novembre...


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#6 Le 24/10/2006, à 23:33

foobar2000

Re : [résolu][Compilation]Shell

Si tu veux plus de detail encore y a ceci http://opengroup.org/onlinepubs/0079087 … ellix.html. smile


Aucun rapport avec le logiciel du même nom.

Hors ligne