21-School (Ecole42) 'minishell' project. Score 100 (without bonuses).
This is the first team project of the school course. The goal of this project is to create your own CLI implementation.
minishell implements builtins functions:
echo
with option ’-n’cd
with only a relative or absolute pathpwd
without any optionsexport
without any optionsunset
without any optionsenv
without any options and any argumentsexit
without any options
also it can run any other binary file, in case this file is located in PATH, no need to enter full path.
Commands separator ;
, redirections
(<
, >
, >>
), pipelines
(|
), quotes '
, "
, termination signals
(Ctrl+C
, Ctrl+\
) and EOF (End-of-file) marker (Ctrl+D
) are also handled "like in bash".
This project uses my own Libft library with functions from my previous Libft
projects as a submodule.
Therefore, to clone the complete project, use the additional --recursive
flag.
git clone --recursive https://github.com/awerebea/minishell.git
To build the library and program, at the root of this cloned repository, run:
make
and then to run the minishell, run:
./minishell
Try using single-line commands with bash syntax and enjoy! 😉