Le but de ce projet fut de réaliser un Shell de type bash ou tcsh en C.
Le 42sh fait parti des trois projets les plus importants que nous devions rendre en fin de première année.
Le projet consistuait en l’écriture d’un Shell du niveau de bash, tcsh et autres. Il se décomposait en deux parties :
- Une partie obligatoire qui représentait 40% de la note du projet.
- Une partie optionnelle qui ne être faite que si la partie obligatoire fonctionne complètement.
La stabilité et l’utilisation de l’ensemble est largement prise en compte.
Lire la description complète du projet
Organisation du projet
Ce projet était à effectuer à quatre.
- Gestion de l’affichage
- Gestion d’un fichier de configuration
- Parsing des commandes. (Partie réalisée par mes soins)
Pour cela il a fallut que je découpe les commandes entrées par l’utilisateur en fonction des séparateurs (&&, ||, ;), des parenthèses et cetera.
Cela pour en arriver à séparer les commandes les une des autres. Ainsi que les executer en fonction des résultats des commandes précédentes. - Gestion des redirections
- Option : Utilisation des term-caps (pour l’affichage)
- Option : Gestion de l’historique des commandes
- Option : Gestion des parenthèses (Partie réalisée par mes soins)
- Option : Gestion des inhibiteurs (Partie réalisée par mes soins)
J’ai dû effectuer des fonctions génériques permettant à mes collègues de récupérer un mot ou une chaîne de caractère, « utilisable ».