This project is to create a simple shell. Concepts about processes and file descriptors are introduced.
Working on this project allows you to travel through time and come back to problems people faced when Windows didn't exist.
This is a group project completed by Q. Li & R. Bakker
The following elements need to work like in bash
-
Show a
prompt
when waiting for a new command -
Search and launch the right
executable
(based on the$PATH
variable or by using relative or absolute path) -
Implement the below builtins:
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
-
;
to separate commands -
Pipes
|
-
'
and"
except for multiline commands -
Redirections
<
>
>>
except for file descriptor aggregation -
Environment variables
($ followed by characters) -
$?
to store exit status of the previous command -
ctrl-C
,ctrl-D
andctrl-\
Run the following commands
$ git clone https://github.com/qingqingqingli/minishell
$ cd minishell
$ make
$ ./minishell
- Create
minishell
executable and run
- Start testing!