Blame | Last modification | View Log | Download | RSS feed
Student Information-------------------Kevin Lee - klee482 - group244How to execute the shell------------------------The shell can be started by running ./eshBasic functionality can be tested by running ./stdriver.py -bAdvanced functionality can be tested by running ./stdriver.py -aImportant Notes---------------A more comprehensive test for exclusive access can be done byrunning/suspending vim from inside the shell.Description of Base Functionality---------------------------------The shell implements the following built in commands: jobs, fg, bg, kill, stop.The shell also implements \^C and \^Z to stop and suspend foregroundprocesses. For each specified pipeline (seperated by ;), the first commandis checked to see if it is a built in command. If it is, the built in command isexecuted and all following commands in the pipeline are ignored. The commandjobs outputs a list of all background jobs and the state of each job along witha job ID. The job ID can then be used by commands fg, bg, kill, and stop. \^Ckills the current foreground job (including the esh shell) and \^Z suspends thecurrent foreground job.Description of Extended Functionality-------------------------------------The shell also implements I/O redirection, pipes, and exclusive access.Multilpe commands can be chained together using '|' so that the output ofthe first process goes to the input of the second process. I/O redirectionis also implemented so that a file can be used as the imput to the firstcommand using '<' . The output of the last process can be directed to a fileas well using '>'. Appending the output to the specified file works as wellwith '>>'. Exclusive access is also implemented using process groups andterminal access to allow programs such as vim to work.List of Plugins Implemented---------------------------N/A