Shell simple, en C, basé sur les features proposées par bash. Projet réalisé en binôme avec une liste limitée de fonctions autorisées de la libc.
- Lecture et édition de ligne avancée avec Termcaps
- Analyse lexicale ("Lexing")
- Analyse syntaxique ("Parsing")
- Analyse sémantique
- Génération d'un Arbre de Syntaxe Abstraite (Abstract Syntax Tree, AST)
- Evaluation d'un AST
- Edition de ligne à l'aide de la bibliothèque Termcaps
- Fonctionnalités de
ctrl+D
etctrl+C
dans l'édition de ligne et l'éxécuton de processus - Séparateur de commande
;
- Pipes
|
- Les quatre redirections
<
>
<<
>>
- Aggrégation de descripteurs de fichiers, par exemple
2>&-
- Editer la ligne à l'endroit ou se trouve le curseur
- Déplacer le curseur vers la gauche et la droite et éditer la ligne à un endroit précis
- Utiliser les flèches du haut et du bas pour naviguer dans l'historique
- Copier/couper/coller
- Se déplacer par mot vers la gauche, la droite
- Aller directement à la fin et en début de ligne avec
HOME
etEND
- Ecrire et éditer une commande sur plusieurs lignes, avec passage d'une ligne à l'autre sur la même colonne
- Gestion complète des quotes et double quotes
- option -dev
- operateurs logiques && ||
- backquotes
- subshells
- variable locale
- auto completion
- gestion des sorties
- expansions des inhibiteurs
- Gestion des erreurs
- Execution en entree standard