Minishell es un proyecto desarrollado en 42 Madrid como parte del plan de estudios de la escuela. El objetivo es crear un shell minimalista que replique el comportamiento de bash y otras shells, implementando funcionalidades clave para la ejecución de comandos y gestión del entorno.
- Soporte para comandos ejecutables.
- Gestión de redirecciones (
>
,>>
,<
, heredoc). - Pipes (
|
) para encadenar comandos. - Variables de entorno y su manejo (
export
,$VAR
). - Implementación de señales (Ctrl-C, Ctrl-D, Ctrl-).
- Manejo de errores y códigos de salida específicos.
-
Clona este repositorio:
git clone https://github.com/Fernandomr23/minishell.git
-
Accede al directorio del proyecto:
cd minishell
-
Compila el proyecto:
make
-
Ejecuta el shell:
./minishell
minishell$ echo "Hola Mundo" > salida.txt
minishell$ cat salida.txt
Hola Mundo
El proyecto está organizado en los siguientes módulos:
- Parsing: Maneja la interpretación y validación de comandos.
- Execution: Coordina la ejecución de comandos internos y externos.
- Environment: Controla las variables de entorno.
- Redirection: Gestiona los operadores de redirección.
- Signals: Implementa la gestión de señales.