Write a Shell prgram – ” shell that runs on top of the regular command-line interpreter for Linux. “.
I need support with this C Programming question so I can learn better.
In our slides we talked about a simple shell. For this assignment you will implement your own shell that runs on top of the regular command-line interpreter for Linux.
Your shell should read lines of user input, then parse and execute the commands by forking/creating new processes. For each command, your shell should call fork() followed by execvp().
Following each command, your shell should wait for its child process to complete, and then print the child PID and the return result from the child.
The user should be able to specify the command to execute by giving a path to the executable file (e.g. /bin/ls) or by using path expansion to locate the executable file (i.e. searching each directory in the PATH environment variable). (Note that the execvp() function perform this processing automatically; you do not need to program it yourself.) If your shell encounters an error while reading a line of input it should report the error and exit.
If your shell encounters EOF while reading a line of input, it should exit gracefully without reporting an error. Ensure that you do not overflow a 1024 byte buffer when fetching the line of input (functions that do not accept the size of your buffer are not able to prevent overflows whereas functions that do accept a size generally do; be sure to check the manpage of any function you use carefully).
You do not need to report an error if the user’s input line is larger than the 1024 byte buffer; just use the truncated input as the command.