This is a C implementation of a bash-like shell that was created as part of CS344 - Operating Systems I course at Oregon State University.
The following features are implemented in this program:
- Provide a prompt for running commands
- Handle blank lines and comments, which are lines beginning with the # character
- Provide expansion for the variable $$
- Execute 3 commands exit, cd, and status via code built into the shell
- Execute other commands by creating new processes using a function from the exec family of functions
- Support input and output redirection
- Support running commands in foreground and background processes
- Implement custom handlers for 2 signals, SIGINT and SIGTSTP
To complile the code, use the following line using gcc:
gcc -std=gnu99 -o smallsh smallsh.c