42 project, recoding our own little bash. A program capable of parsing a prompt and launching executables with arguments, along with a few built-in functions.
Mandatory part : 100/100
Bonus : 0/15
Using make will create the minishell executable.
Simply run it with :
./minishell
Minishell runs executables from an absolute, relative or environment PATH (/bin/ls or ls), including arguments or options. ' and " work the same as bash, except for multiline commands.
You can separate commands with ;, as well as use redirections > >> < and pipes |.
Environment variables are handled, like $HOME, including the return code $?.
Finally, you can use Ctrl-C to interrupt and Ctrl-\ to quit a program, as well as Ctrl-D to throw an EOF, same as in bash.
A few of the functions are "built-in", meaning we don't call the executable, we re-coded them directly. It's the case for echo, pwd, cd, env, export, unset and exit.
This two-person project was done with macrespo.
I was responsible for the parsing, argument checking, execution, redirection and piping.
Macrespo took care of the environment variables, built-in functions, and signal handling.