Question
In this assignment you will write a command interpreter in Python The user types a command in response to a prompt that appears on the
In this assignment you will write a command interpreter in Python The user types a command in response to a prompt that appears on the screen. When the command is entered, the command interpreter determines what the command means and executes the command.
Your command interpreter should do the following.
- Display a prompt for the user.
- Read the user's input.
- Determine if the entered command is valid
- If it is valid, print a message that says the command is being executed and then re-display the prompt.
- If the command is not valid, display an appropriate error message and re-display the prompt.
- Continue until the user enters the command QUIT.
The valid commands will be
LIST (lists contents of current directory)
LIST path (lists contents of the directory identified by path)
CHDIR path (changes current directory to the directory identified by path)
RUN path/filename (executes an executable file in path)
REMOVE path/filename
RENAME old new (renames the file or directory name old to new)
HELP (displays all valid commands and what they do)
QUIT (terminates the program)
Note: In this assignment except for HELP and QUIT, the other commands actually don't execute the job they are supposed to carry out!
Implementations of other tasks will be assigned In future assignments.
Implement the RUN functionality of your command interpreter.
Your RUN command takes one argument. The executable file specified by the argument should be run and when finished, the prompt displayed. The syntax is:
RUN executable-file
The algorithm for RUN would be as follows.
Define a parent function in which you:
Fork a child process.
Block the parent process to wait till child process ends
If child process is created successfully, call a child function that implements the child process
Define a child function from which you execute the executable program
This will require the following library functions (in Python on UNIX)
os.fork( ) creates a child process and returns the PID of the child process to the parent. Child PID is 0.
subprocess.call(path/executableProgram) executes a program in the current process
os.waitpid(pid,0) causes the parent to block until the child finishes
implement the remaining functionality of your command interpreter.
The syntaxes are:
(For LIST)
LIST
or
LIST path
This will require the following two library functions (in Python)
os.path.exists(path) Returns true if path exists.
os.listdir(path) returns a python list of contents of directory.
os.getcwd() Returns the path of current directory.
(For the rest)
CHDIR path
REMOVE path/file
RENAME old new
This will require the following two library functions (in Python)
os.chdir(path) Changes current working directory to path
os.remove(path) Removes the file name path from current working directory
os.rmdir(path) Removes the directory named path from the current directory
os.rename(old,new) Renames the file or directory named old to new
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started