Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Databases A Beginners Guide

Authors: Andy Oppel

1st Edition

007160846X, 978-0071608466

More Books

Students also viewed these Databases questions