A simple Unix shell implementation for 42 School.
The project is organized as follows:
main.c: Entry point and main shell loopincludes/minishell.h: Main header file with all declarations
builtins/: Built-in shell commands (cd, echo, export, etc.)command/: Command structure managementexec/: Command execution and pipeline handlingenv_utils.c: Environment variable managementcommand_execution.c: Single command executionpipeline_execution.c: Pipeline executionpath_utils.c: Command path resolutionbuiltin_execution.c: Built-in command execution
expand/: Environment variable expansionparse/: Input parsingredirection/: I/O redirection handlingsignals/: Signal handlingsignal_handlers.c: Signal handler functionssignal_setup.c: Signal setup functions
token/: Tokenization of inpututils/: Various utility functions
- Command execution
- Pipelines
- Redirections (>, <, >>, <<)
- Environment variables
- Signal handling (Ctrl+C, Ctrl+, Ctrl+D)
- Built-in commands (cd, echo, pwd, export, unset, env, exit)
- Quote handling (single and double quotes)
make
./minishell
fix redirects
test the heredocs more througoutly
refactor functions that are more than 25 lines
refactor files that are more than 5 functions
refactor functions that have more than 5 variables