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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!