A simple bash like shell Features:
- Quotes
"and', environment variables with$ export a=bandunset- Pipes
|, and&&, or|| - Parens for additional forking
(ls && echo heyo) | cat - Redirections
<>>>and heredoc<<
Some stuff we use:
- A hashmap to store environment variables for faster access
- A cached path for faster command search
- No unnecesarry copies for things like envp generation, always using pointer references
- Unit testing with google test framework for testing tokenizer, parser and the hashmap
- Github Actions for automating tests and norminette linting.
git clone [email protected]:ytkimirti/minishell.git --recursive
cd minishell
make
./minishellTo run the tests, you have to have a C++ compiler
make test- It does not support word splitting.
- Redirections after parentheses does not work like
(ls) >out - Multiple readlines opening with
cat <<a | cat <<b echoandexitcommand flags- Handling of the signal
SIGQUIT