Shell program implementing a subset of features of well-known shells, such as bash. Originally written for operating systems course Winter 2026.
Features include:
- Provide a prompt for running commands
- Handle blank lines and comments (comments begin with # character)
- Execute three built in commands exit, cd and status
- Execute other commands by creating new processes using a function from the exec() family
- Support input and output redirection
- Support running commands in foreground and background processes
- Custom handlers for SIGINT and SIGTSTP
- SIGINT: parent/shell process ignores, child process terminates
- SIGTSTP: shell enters 'foreground-only' mode