Limit yourself to the subject description. Anything that is not asked is not required
[x] Display a prompt when waiting for a new command
[x] Have a working history
[x] Search and launch the right executable based on the PATH variable
[x] Search and launch the right executable using a relative path
[x] Search and launch the right executable using an absolute path
[x] Avoid using more than one global variable to indicate a received signal (this global variable can provide the number of a received signal only)
[x] Should not interpret unclosed quotes or special characters which are not required by the subject such as \ (backslash) or ; (semicolon)
[x] Should handle ’ (single quote) which should prevent the shell from interpreting the meta- characters in the quoted sequence
[x] Should handle " (double quote) which should prevent the shell from interpreting the meta- characters in the quoted sequence except for $ (dollar sign)
[x] Should implement | (pipe character)
[x] Should handle environment variables ($ followed by a sequence of characters) which should expand to their values
[x] Should handle $? which should expand to the exit status of the most recently executed foreground pipeline
[x] Should handle ctrl-C which should behave like in bash: displays a new prompt on a new line
[x] Ctrl-C should exit with status code 130
[x] Should handle ctrl-D which should behave like in bash: exits the shell
[x] Should handle ctrl-\ which should behave like in bash: does nothing
[x] Must implement echo with option -n
[x] Must implement cd with only a relative or absolute path
[x] Must implement pwd with no options
[x] Must implement export with no options
[x] Must implement unset with no options
[x] Must implement env with no options or arguments
[x] Must implement exit with no options
[x] Don’t fix readline() memory leaks
[ ] Bonus: Has to implement && and || with parenthesis for priorities.
[ ] Bonus: Has to implement wildcards: * should work for the current working directory
Limit yourself to the subject description. Anything that is not asked is not required