Based on the floppy disk program you have developed in project, you are asked to change the program to a floppy shell that supports Linux shell commands in addition to your existing floppy disk related commands. You are expected to use C programming language. Your implementation must work on Linux machine in BU004b lab.
1.Your shell should repeatedly display a prompt and allow the user to enter a command to run. Your shell is supposed to read the input from system standard input, parse the line with command and arguments, and execute. You may want to use fork() and exec*() system calls.
Your shell should find the build-in command (see part2) in your current working directory first. If not found, it should search the directories in the shell`s pathname environment (see part2).
You are not allowed to use system(), as it invokes the system`s /bin/sh shell. You should not use execlp() or execvp(), because your shell has its own path variable (explained in part2).
By convention, the command arguments are seperated by white spaces. Please describe your customized argument seperation rules in your README document if you have special arrangement (not recommended though). Your shell does not need to handle special characters, like ",", "?", "", except the redirection operators (<, >) in part3 and the pipeline operator (|) required in part4.
Given a properly configured searching pathnames (see part2), your shell should be able to run all Linux shell commands, such as ls, pwd, cat, ..., etc.
If the command cannot be found, a propriate error message must be printed and the shell should be waiting for the next command.