In this assignment you will write your own shell program, Mav shell (msh), similar to bourne shell (bash), c-shell (csh), or korn shell (ksh). It will accept commands, fork a child process and execute those commands. The shell, like csh or bash, will run and accept commands until the user exits the shell. Your file must be named msh.c
Requirement 1: Your program will print out a prompt of msh> when it is ready to accept input. It must read a line of input and, if the command given is a supported shell command, it shall execute the command and display the output of the command.
Requirement 2: If the command is not supported your shell shall print the invalid command followed by “: Command not found.”
Requirement 3: If the command option is an invalid option then your shell shall print the command followed by “: invalid option –” and the option that was invalid as well as a prompt to try —help. exec() outputs this automatically make sure you pass it on to your user.
Requirement 4: After each command completes, your program shall print the msh>
prompt and accept another line of input.
Requirement 5: Your shell will exit with status zero if the command is “quit” or “exit”.
Requirement 6: If the user types a blank line, your shell will, quietly and with no other output, print another prompt and accept a new line of input.
Requirement 7: Your shell shall support suspending the process with ctrl-z
Requirement 8: Your shell shall background a suspended process with bg
Requirement 9: Your version of Mav shell shall support up to 10 command line parameters in addition to the command.
Requirement 10: Your shell shall support and execute any command entered. Any command in /bin, /usr/bin/, /usr/local/bin/ and the current working directory is to be considered valid for testing.