Le projet "42sh" est une partie intégrante du cursus d'EPITECH. Il consiste à créer un programme qui fonctionne comme un interpréteur de commandes (un shell) spécialement conçu pour les systèmes UNIX. Ce projet est réalisé en langage C et doit être compilé à l'aide d'un Makefile.
La partie obligatoire du projet vise à développer un shell capable de gérer des commandes simples, les séparateurs (;, &&, ||), les redirections (<, >, <<, >>), ainsi que les commandes internes telles que cd, echo, exit, setenv et unsetenv.
Dans la partie optionnelle, les étudiants ont l'opportunité d'ajouter des fonctionnalités supplémentaires pour obtenir des points supplémentaires. Parmi ces fonctionnalités, on trouve les inhibiteurs (), les jokers (*, ?, [, ]), le contrôle des tâches (exécution en arrière-plan), les backticks (``) pour exécuter des commandes dans une commande, les parenthèses (()) pour regrouper des commandes, les variables locales et d'environnement, l'historique des commandes, les aliases (raccourcis de commandes), l'édition de ligne avancée, et même la possibilité de scripter des commandes.
Les étudiants sont encouragés à collaborer en groupe, à bien organiser la répartition des tâches, à écrire des tests pour vérifier le bon fonctionnement du programme et à utiliser Git pour gérer les différentes versions du code.
En somme, le projet "42sh" est une opportunité pour les étudiants d'EPITECH de créer un interpréteur de commandes complet, répondant aux fonctionnalités de base obligatoires et éventuellement agrémenté d'extras optionnels pour obtenir davantage de points.