8000 GitHub - Simo-42/Minishell: This 42 School project is about making a bash.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Simo-42/Minishell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minishell

Demo Cub3d Minishell est un interpréteur de commandes Unix minimal écrit en C. Le projet a été réalisé en collaboration avec FD-Arco.

Fonctionnalités

Minishell dispose des fonctionnalités suivantes :

  • Affichage d'un invite de commande lorsque le shell attend une nouvelle commande.
  • Historique de commandes fonctionnel.
  • Recherche et lancement du bon exécutable (en utilisant la variable PATH ou en spécifiant un chemin relatif ou absolu).
  • Gestion d'une seule variable globale pour indiquer la réception d'un signal. Cela garantit que le gestionnaire de signaux n'accédera pas à des structures de données principales.
  • Non-interprétation de guillemets non fermés ou de caractères spéciaux non requis par le sujet, tels que \ (backslash) ou ; (point-virgule).
  • Gestion des guillemets simples ' (single quote) pour empêcher l'interprétation des métacaractères dans la séquence citée.
  • Gestion des guillemets doubles " (double quote) pour empêcher l'interprétation des métacaractères dans la séquence citée, à l'exception de $ (dollar sign).
  • Mise en œuvre des redirections :
    • < redirige l'entrée.
    • redirige la sortie.

    • << doit être suivi d'un délimiteur, puis lit l'entrée jusqu'à ce qu'une ligne contenant le délimiteur soit vue. Cependant, il n'est pas nécessaire de mettre à jour l'historique.
    • redirige la sortie en mode ajout.

  • Mise en œuvre des pipes (|). La sortie de chaque commande dans le pipeline est connectée à l'entrée de la commande suivante via un tube.
  • Gestion des variables d'environnement ($ suivi d'une séquence de caractères) qui doivent se développer en leurs valeurs.
  • Gestion de $? qui doit se développer en le code de sortie de la dernière pipeline en premier plan exécutée.
  • Gestion de ctrl-C, ctrl-D et ctrl-, qui doivent se comporter comme dans bash.
  • En mode interactif :
    • ctrl-C affiche un nouvel invite sur une nouvelle ligne.
    • ctrl-D quitte le shell.
    • ctrl-\ ne fait rien.
  • Implémentation des commandes intégrées suivantes :
    • echo avec l'option -n
    • cd avec uniquement un chemin relatif ou absolu
    • pwd sans options
    • export sans options
    • unset sans options
    • env sans options ni arguments
    • exit sans options

Compilation et exécution

Utilisez le fichier Makefile fourni pour compiler le projet. Les fichiers sources sont *.c et les fichiers d'en-tête sont *.h. make make leak ./minishell env -i ./minishell

About

This 42 School project is about making a bash.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0