[SOLVED] CS139 HomeWork 5, Command Line interpreter

40.00 $

Category:
Click Category Button to View Your Next Assignment | Homework

You will receive the following solution file(s) instantly after successful payment:

zip file icon CLI-hderjx.zip (6.4 KB)
Assignment Instructions Updated Recently? Submit Below and we will provide new Solution!
Submit New Instructions
🔒 Securely Powered by:
Secure Checkout
5/5 - (2 votes)

Design, implement, document, test and run a simple shell, known here as a command-line interpreter (cli). This tool is invoked via the cli command plus possible arguments. Commands are operating system commands to be executed under the Unix (or Linux) OS. Multiple commands are separated from one another by commas, and each may in turn have arguments. Cli ‘knows’ a list of commands a-priori (predefined). When invoked, cli checks, whether the first argument is an included, predefined command. If so, cli confirms this via a brief message. If not, a contrary message is emitted, stating this is not one the predefined commands. After the message, cli executes all commands in the order listed. After executing the last command, cli prints the current working directory, i.e. it acts as if the pwd command had been executed. Sample runs are shown further below.

 

Multiple commands of cli must be separated from one another by commas. Possible parameters of any one command are separated from the command itself (and from possible further parameters) by white space. White space consists of blanks, tabs, or a combination, but at least 1 blank space. Here some sample runs with single and multiple commands; outputs are not shown here:

 

./cli pwd

./cli rm –f temp, mv temp ../temp1

./cli ls –la

./cli rm a.out, gcc sys.c, cp a.out cli

 

The output of the cli command “cli pwd” or “./cli pwd” should be as shown below. Here is the output of a sample run with a single command line argument:

 

herbertmayer$ ./cli pwd hgm cli 4/12/2020

Legal commands:  cd exec exit gcc ls man more mv rm pwd sh touch which $path

2 strings passed to argv[] next string is ‘pwd’ new string is ‘pwd ‘

1st cmd ‘pwd’ is one of predefined.

/Users/herbertmayer/herb/academia/classes_Sac_State/csc139

Here the output of another sample run, also with a single cli:

herbertmayer$ ./cli ls hgm cli 4/12/2020

Legal commands:  cd exec exit fork gcc ls man more mv rm pwd sh touch which $PATH

2 strings passed to argv[] next string is ‘ls’ new string is ‘ls ‘

1st cmd ‘ls’ is one of predefined.

admin               cli.c         sac_state_yyy

backup_1_24_2020 docs            sac_state_hw

backup_3_9_2020 grades           sac_state_xxx

cli                 l_notes

/Users/herbertmayer/herb/academia/classes_Sac_State/csc139

 

 

 

 

 

 

1

List of all commands supported by your cli:

 

char * cmds[ ] = {

“cd”,

“exec”,

“exit”,

“gcc”,

“ls”,

“man”,

“more”,

“mv”,

“rm”,

“pwd”,

“sh”,

“touch”,

“which”,

“$path”

};

To Do:

  1. Code for CLI in one single file.
  2. About four progressively more complex executions of your correctly working cli program, showing all user input and output.

2

  • CLI-hderjx.zip