rshell  1.2
rshell Documentation

rshell is a linux based terminal emulator in C++ created by Bradd Carey (git: radbradd).
For a full documentation and description of classes please refer to the dOxygen code.

This project was created by guidelines set by Professor Brian Crites for UC Riverside Bourne’s College of Engineering course CS 100 (Software Construction) Spring 2016.

Description

This project uses C++ to emulate the linux terminal by running programs found in /bin/. It is designed to run any number of those programs given the correct commands. For example: ls whoami echo pwd mkdir

Additionally commands can be linked by common connectors (&& || and ;) and comments are also detected and properly parsed.

A set of tests are included in rshell/scripts/ to fully test the functionality of the program.

Version

1.2 - Assignment 4

Release Notes

1.2:

 cat < foo.txt | tr A-Z a-z | tee out1.txt | tr a-z A-Z > out2.txt

1.1:

(echo a && echo b)||(echo c && echo d) # separate sets of parentheses
echo a && (echo b || (echo c && echo d)); (echo e) # shallow nesting
(echo a && (echo b && (echo c && (echo d || (echo e))))) # deep nesting
# no flag or '-e' flag preceded by test or in [] verifies path exists
[ ../makefile ] && echo "makefile exists" || echo "makefile does not exist"
test -e ../makefile && echo "makefile exists" || echo "makefile does not exist"

# flag '-f' verifies path points to file
[ -f ../makefile ] && echo "makefile is a file" || echo "makefile is not a file"

# flag '-d' verifies path points to directory
[ -d ../src ] && echo "src is a directory" || echo "src is not a directory"

Installation

$ git clone https://github.com/radbradd/rshell.git
$ cd rshell
$ git checkout hw3
$ make
$ bin/rshell

Known Bugs

Future Implementations